使用smart_selects / jQuery更改选择字段

时间:2016-02-01 04:05:10

标签: jquery python django django-forms

我配置了一个显示用户列表的表单。目前,这显示了Django中默认用户身份验证模型的所有人:

employee = models.ForeignKey(User)

我也扩展了用户'模型包含一些针对用户的额外字段(客户端,位置,假日等)。

class Employee(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) client = models.ForeignKey(Client, blank=False) location = models.ForeignKey(Location, blank=False)

但是,我想做以下事情:

如果先前的选项(客户端,位置)设置为Client1和Japan,则仅显示为此客户端和位置设置的用户。

我尝试使用智能选择,但我不认为这是为了这样工作(或者,如果它是,我没有正确理解它并且文档真的缺乏)。

employee = ChainedForeignKey( Employee, chained_field="client", chained_model_field="user", show_all=False, auto_choose=True )

我认为我以完全错误的方式解决这个问题,而且我无法找到在Django中执行此操作的合适方法。

有没有人有一个推荐的插件,我可以使用它可能足够智能这样做?我知道这个问题似乎只是在问代码,但实际上我只是不知道我在尝试过的所有事情上做错了什么。即使只是推荐也会很棒。

总结一下我的问题:如何让Django根据之前选择的字段过滤表单结果?

1 个答案:

答案 0 :(得分:1)

据我所知,Django并不支持这一点。

您可以设置其他视图并使用jquery发送ajax请求以缩小第2和第3个字段的响应。

快速谷歌搜索显示django-ajax-selects,看起来它完全符合您的要求。

Another,虽然是稍微过时的解决方案。