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

¿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',)