如果我有Book
模型的外键Author
,我怎么能限制作者是有效的外键。例如,如果Author
包含work_authored
字段,我只希望图书能够将其work_authored
字段设置为“图书”的foreigkey作者(与“文章”等其他值相对应) ,'essays','play')。
我的场景(和TL; DR):我希望我的记录只能将其他布尔字段设置为true的记录设为外键。
我很确定这可以通过Django的object validation完成,但这不会限制Django管理员下拉列表中的值。
答案 0 :(得分:5)
尝试使用limit_choices_to
。您可以将其设置为
class Book(Model):
author = ForeignKey(AuthorModel,
limit_choices_to = { 'work_authered': 'books'}
)