Django将外键限制为满足特定条件的记录
Posted
技术标签:
【中文标题】Django将外键限制为满足特定条件的记录【英文标题】:Django restrict foreignkey to records meeting a specific criteria 【发布时间】:2013-09-17 19:46:32 【问题描述】:如果我有一个外键 Author
的 Book
模型,我怎么能限制什么 Authors 是有效的外键。例如,如果 Author
包含 work_authored
字段,我只希望 Books 能够对将 work_authored
字段设置为“books”的作者进行外键(与其他值,如“articles”、“essays”、“播放')。
我的场景(和 TL;DR):我希望我的记录只能外键化布尔字段设置为 true 的其他记录。
我很确定这可以通过 Django 的object validation 来完成,但这并不限制 Django 管理员下拉列表中的值。
【问题讨论】:
【参考方案1】:尝试使用limit_choices_to
。您可以将其设置为
class Book(Model):
author = ForeignKey(AuthorModel,
limit_choices_to = 'work_authered': 'books'
)
【讨论】:
谢谢!我测试了,这也验证了 ForeignKey 符合条件。以上是关于Django将外键限制为满足特定条件的记录的主要内容,如果未能解决你的问题,请参考以下文章
复杂的django查询,获取foreignkey_set不包含满足限制的对象的对象