限制Django Admin *行中的外键选择*

时间:2015-03-26 20:10:13

标签: python django

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

我已经查看了很多相关的问题,并且已经了解到实现此目的的一种方法是覆盖formfield_for_foreignkey的{​​{1}}方法,因为我需要知道其类型当前对象,我还需要覆盖ModelAdmin并将当前对象的引用添加到请求中。

这在编辑单个实例的表单时有效,但在为模型的所有实例加载管理员基于表的视图时不起作用。显然它会调用get_form,而不是formfield_for_foreignkey,所以我正在寻找的对象引用不存在。有关如何使这项工作的任何想法?

1 个答案:

答案 0 :(得分:0)

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

相关问题