我有项目和食谱(链接到它创建的项目),其中食谱使用through
模型来定义食谱中的项目数量。
现在我有以下问题;我想将配方限制为只有一次,无论数量如何。
因此,如果我有项目Bread
并添加Flour
x1,Butter
x2 Sunseeds
x2。之后,如果有人尝试再次添加其中一项,我想提出一个错误。
我怎么能那样做?
更新
unique_together
将是一个解决方案,在recipe_id
和item_id
?
更新 2(一些代码)
class Recipe_Has_Items(models.Model):
recipe = models.ForeignKey('Recipe')
item = models.ForeignKey('Item')
quantity = models.IntegerField(validators = [MinValueValidator(0)])
def __unicode__(self):
return '%s (%d)' % (self.item, self.quantity)
class Meta:
verbose_name = 'Recipe\'s Item'
verbose_name_plural = 'Recipe\'s Items'