我配置了一个显示用户列表的表单。目前,这显示了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根据之前选择的字段过滤表单结果?
答案 0 :(得分:1)
据我所知,Django并不支持这一点。
您可以设置其他视图并使用jquery发送ajax请求以缩小第2和第3个字段的响应。
快速谷歌搜索显示django-ajax-selects,看起来它完全符合您的要求。
Another,虽然是稍微过时的解决方案。