我有以下模型:
class SOA(models.Model):
adviser = models.ForeignKey(User)
...
adviser
不能是任何用户,而是满足某些要求的用户(例如,属于某个组的用户)。例如,在处理表单时,这是相关的:用于选择 adviser
的下拉列表。向我显示系统中的所有用户,但我想过滤它并且只显示实际上是顾问的用户(在这种情况下,定义为属于 advisers
组)是否可以在模型级别处理这种约束?或者也许在填充表单中的选择框时?
最佳答案
您可以使用 limit_choices_to ForeignKey
的初始化参数类(class)。例如:
adviser = models.ForeignKey(User, limit_choices_to={'is_staff': True})
对于更复杂的查询,您可以使用 Q objects :
..., limit_choices_to=Q(share_holder=True) | Q(distributor=True)
关于django - 将 ForeignKey 的可能值限制为模型的子集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35291612/