La opción unique_together no funciona

76 views
Skip to first unread message

FernandoJMM

unread,
Jan 18, 2018, 7:32:49 PM1/18/18
to Django-es
Hola,

Tengo la siguiente clase:

-----------------------------------------------------------------
class Silo(models.Model):
    nave = models.ForeignKey(Nave, on_delete=models.CASCADE)
    codSil = models.CharField(
        'Código Silo', db_index=True, max_length=2, default='01')
    notas = models.TextField(null=True, blank=True)

    def __str__(self):
        return "%s %s" % (self.nave, self.codSil)

        class Meta:
            order_with_respect_to = 'nave'
            unique_together = ('nave', 'codSil')

-------------------------------------------------------------------

Pero la opción unique_together no funciona porque en la base de datos SQLite existen valores duplicados en nave y codSil.

Para solucionarlo tengo que crear el indice nave + codSil a mano en la base de datos SQLite ???

Pensé que django la hacía de forma automática !

Gracias

Ramiro Morales

unread,
Jan 18, 2018, 7:38:08 PM1/18/18
to djan...@googlegroups.com
Sí la clase Meta realmente la has definido 'dentro' del método __str__ cómo se ve en el código que has pegado entonces ahí tenés tu respuesta.

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-unsubscribe@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a django-es+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.

carlos

unread,
Jan 18, 2018, 10:03:15 PM1/18/18
to djan...@googlegroups.com
Tiene razon Ramiro si tenes el codigo asi como lo mostrates no te va a funcionar, porque el opción
es bien claro, aca su documentacion

--
att.
Carlos Rocha

Fernando J. Martinez

unread,
Jan 19, 2018, 3:28:35 AM1/19/18
to djan...@googlegroups.com
Hola Ramiro,

Si está dentro del método . . . como puedes ver soy nuevo en django.
Esta tarde lo pruebo.

Muchas gracias Ramiro !!!

Has recibido este mensaje porque estás suscrito a un tema del grupo "Django-es" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/django-es/qP7EmcDX1K4/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a django-es+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.



--
Fernando J. Martínez
Consultor TIC

Atención: Este mensaje y los documentos que, en su caso, lleve anexos, pueden contener información confidencial. Por ello, se informa a quien lo reciba por error, que la información contenida en el mismo es reservada y su uso no autorizado está prohibido legalmente por la Ley Orgánica 15/1999 de Protección de Datos de Carácter Personal, por lo que en tal caso, debe abstenerse de realizar copia, remitirlo o entregarlo a otra persona y proceda a borrarlo de inmediato.

Antes de imprimir este correo electrónico piensa bien si es necesario hacerlo: El medio ambiente es de tod@s.

Fernando J. Martinez

unread,
Jan 19, 2018, 3:35:09 AM1/19/18
to djan...@googlegroups.com
Hola Carlos,

Ayer estuve estudiando justamente la documentación que me adjuntas pero ese ejemplo no tenía un método __str__ definido y claro como soy nuevo en django no sé exactamente donde poner la class META.
Al parecer como está no funciona (después del método), entonces dónde hay que ponerlo ? entre la clase del modelo y el método ??

Esta tarde seguiré probando . . ..

Gracias Carlos

Has recibido este mensaje porque estás suscrito a un tema del grupo "Django-es" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/django-es/qP7EmcDX1K4/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a django-es+unsubscribe@googlegroups.com.

Para acceder a más opciones, visita https://groups.google.com/d/optout.



--

Francisco Pandol

unread,
Jan 19, 2018, 7:45:27 AM1/19/18
to djan...@googlegroups.com
la clase Meta va adentro de la clase principal, al mismo nivel que el método __str__

class Silo(models.Model):
    class Meta:
        ...
    
    def __str__():
         ...
Francisco Pandol

Fernando J. Martinez

unread,
Jan 19, 2018, 8:32:05 AM1/19/18
to djan...@googlegroups.com
Muchas gracias por tu ayuda FRANCISCO, así lo haré.

Slds

Fernando J. Martinez

unread,
Jan 19, 2018, 12:26:30 PM1/19/18
to djan...@googlegroups.com
Buenas tardes, corregido y funcionando.

Muchas gracias a los tres !!! (Ramiro, Carlos y Francisco)

Slds

El 19 de enero de 2018, 13:44, Francisco Pandol <pandol.f...@gmail.com> escribió:

FernandoJMM

unread,
Jan 19, 2018, 12:28:01 PM1/19/18
to Django-es
Buenas tardes, corregido y funcionando.

Muchas gracias a los tres !!! (Ramiro, Carlos y Francisco)

Slds


Reply all
Reply to author
Forward
0 new messages