如何使用ForeignKey.limit_choices_to限制具有相同父对象的两个对象之间的关系

时间:2018-11-15 21:49:47

标签: django-models django-admin

我有以下Django模型:

class League(models.Model):

class Division(models.Model):
    league = models.ForeignKey(League)

class Season(models.Model):
    league = models.ForeignKey(League)
    divisions = models.ManyToManyField(Division)

是否可以在Season.divisions上使用ManyToManyField.limit_choices_to要求仅当赛季和分区具有相同的联赛价值时才能关联?

根据django documentation,limit_choices_to

  

为该字段设置一个限制,当此字段可用时   使用ModelForm或admin呈现(默认情况下,   查询集可供选择)。无论是字典,还是Q   对象,或者可以使用返回字典或Q对象的可调用对象。

是否有某种方法可以使用Q()并使用对当前Season记录的引用?由于未定义self,因此以下内容无法正常工作,但也许可以通过某种方式指定类似内容:

divisions = models.ManyToManyField(Division, limit_choices_to=Q( league = self.league )

0 个答案:

没有答案