为了在 Django AdminForm 的 ForeignKey 选择框中仅显示相关的项目,我使用 ActionAdminForm 类自定义了我的 ActionAdmin 模型。为了预选值,我使用了类似此处发布的类https://stackoverflow.com/a/9191583/326905。非常感谢,这真的很好。
但是,当用户不导航表单客户 - > 项目 - > 操作并直接导航到 django admin 中的操作时,我想在 ActionAdmin 表单中显示外键项目的选择框中的值,格式如下:
客户名称 1 - 项目名称
1 客户名称 1 - 项目名称 2
客户名称 2 - 项目名称 3
我的问题是,如何
在下面的代码中的 else 情况下覆盖 self.fields["project"] ,
以便获得从
Project.customer.name 和 Project.name 连接的选择框值?
class ActionAdminForm(ModelForm):
def __init__(self, *args, **kwargs):
self.request = kwargs.pop('request', None)
super(ActionAdminForm, self).__init__(*args, **kwargs)
if self.request.GET.get('project'):
prj = Project.objects.get(id=self.request.GET.get('project'))
self.fields["project"].queryset = Project.objects.filter(customer = prj.customer)
else:
self.fields["project"] = ProjectModelChoiceField(Project.objects.all().order_by('name'))
class Meta:
model = Action