根据先前的字段值选择过滤Django管理字段中的值列表

时间:2013-04-15 10:23:44

标签: python django admin

在我使用的Django应用程序中,我正在使用这些模型:

  • 机构
  • 客户端
  • 资料

Client只能有一个AgencyAgency可以有多个Clients

当我正在编辑/创建Profile时,我首先选择Agency,然后我可以选择多个Clients(这没关系)。

我的问题是,在Clients字段中,我看到所有现有的Clients,而我希望仅查看与所选Clients相关的Agency。我怎么能这样做?

谢谢!

2 个答案:

答案 0 :(得分:1)

该应用程序可以提供帮助,我认为(Django应用程序处理链式模型字段) - https://github.com/digi604/django-smart-selects

pypi中的

链接 - https://pypi.python.org/pypi/django-smart-selects/

答案 1 :(得分:0)

如果您正在编辑个人资料,可以使用“formfield_for_manytomany”https://docs.djangoproject.com/en/dev/ref/contrib/admin/#django.contrib.admin.ModelAdmin.formfield_for_manytomany或“formfield_for_choice_field”为客户字段编写过滤器。

但是对于创建配置文件,只能使用javascript afaik更改客户端列表。在管理表单上这可能是一个棘手的事情。

为什么不选择客户端并省略代理机构的表单域?您可以使用验证器验证选择。