繁体   English   中英

限制Django Admin中的外键选择

[英]Limiting Foreign Key Choices in Django Admin *rows*

我有两个Django模型X和Y都具有“类型”字段,并且Y是X的外键。当显示X的列表(行)时,Django会自动为我显示Y的选择框,包括X的所有可能实例是。但是,我想将ForeignKey选项限制为那些将“ type”设置为与当前对象相同的选项。

我看过很多关于此相关的问题,并已得知实现这个目的的一种方法是重写formfield_for_foreignkey的方法ModelAdmin ,因为我需要知道当前对象的类型,我还需要重写get_form并添加对请求的当前对象的引用。

这在为单个实例编辑表单时有效,但在为Model的所有实例加载管理员基于表的视图时无效。 显然,它调用formfield_for_foreignkey ,但不get_form ,让我找对象的引用不存在。 对如何进行这项工作有任何想法吗?

limit_choices_to是您要寻找的。 它可以确保您要在模型级别而不是在表单级别执行的操作。 这样,表单的查询集将已被过滤(不再需要覆盖formfield_for_foreignkey)。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM