type queryset query example python django django-models

queryset - models py python



Cómo definir dos campos “únicos” como pareja (1)

¿Hay alguna manera de definir un par de campos como únicos en Django?

Tengo una tabla de volúmenes (de revistas) y no quiero más de un número de volumen para la misma revista.

class Volume(models.Model): id = models.AutoField(primary_key=True) journal_id = models.ForeignKey(Journals, db_column=''jid'', null=True, verbose_name = "Journal") volume_number = models.CharField(''Volume Number'', max_length=100) comments = models.TextField(''Comments'', max_length=4000, blank=True)

Intenté poner unique = True como atributo en los campos journal_id y volume_number pero no funciona.


Hay una solución simple para ti llamada unique_together que hace exactamente lo que quieres.

Por ejemplo:

class MyModel(models.Model): field1 = models.CharField(max_length=50) field2 = models.CharField(max_length=50) class Meta: unique_together = (''field1'', ''field2'',)

Y en tu caso:

class Volume(models.Model): id = models.AutoField(primary_key=True) journal_id = models.ForeignKey(Journals, db_column=''jid'', null=True, verbose_name = "Journal") volume_number = models.CharField(''Volume Number'', max_length=100) comments = models.TextField(''Comments'', max_length=4000, blank=True) class Meta: unique_together = (''journal_id'', ''volume_number'',)