Django将foreignkey限制为符合特定条件的记录

时间:2013-09-13 07:45:55

标签: django django-models django-admin foreign-keys django-orm

如果我有Book模型的外键Author,我怎么能限制作者是有效的外键。例如,如果Author包含work_authored字段,我只希望图书能够将其work_authored字段设置为“图书”的foreigkey作者(与“文章”等其他值相对应) ,'essays','play')。

我的场景(和TL; DR):我希望我的记录只能将其他布尔字段设置为true的记录设为外键。

我很确定这可以通过Django的object validation完成,但这不会限制Django管理员下拉列表中的值。

1 个答案:

答案 0 :(得分:5)

尝试使用limit_choices_to。您可以将其设置为

class Book(Model):
    author = ForeignKey(AuthorModel, 
               limit_choices_to = { 'work_authered': 'books'}
              )