【问题标题】:Using smart_selects / jQuery to change choice field使用 smart_selects / jQuery 更改选择字段
【发布时间】:2016-02-01 04:05:09
【问题描述】:

我配置了一个显示用户列表的表单。目前这会显示 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 根据之前选择的字段过滤我的表单结果?

【问题讨论】:

    标签: jquery python django django-forms


    【解决方案1】:

    据我所知,Django 不支持这个。

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

    在谷歌上快速搜索会找到django-ajax-selects,它看起来正是你想要的。

    Another,尽管解决方案稍旧。

    【讨论】:

    • 是的,我玩过 Ajax 解决方案,这些似乎是宏大计划中的另一个更好的解决方案。将在 Ajax 选择上尝试推荐。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-28
    • 2011-11-22
    • 1970-01-01
    • 2012-02-19
    相关资源
    最近更新 更多