我目前正在开发一个 django cms 插件,其模型选择字段依赖于表单中的另一个字段。我现在通过 ajax 所做的是,当选择触发字段时,依赖模型选择字段将通过 ajax 更新,以更改选择字段中的选择。但是,在提交表单时,我遇到了此错误
“选择一个有效的选项。这不是可用的选择之一。”
我对堆栈溢出做了一些挖掘,发现了类似的问题
根据上面的链接,我应该以插件本身的形式更新模型选择字段,具体取决于我将从 request.POST 获取的触发字段的值
我该如何为 django cms 插件执行此操作?我应该覆盖 cms 插件的哪个方法?我假设它是插件的 CMSPluginBase 类中的一个方法,但我不确定要重写什么方法,以及如何获取插件使用的当前表单,以便我可以在上述方法中重写它?
谢谢
最佳答案
经过一番挖掘,我能够通过覆盖表单的 is_valid() 过程中设置的字段查询来做到这一点,如下所示
def is_valid(self):
self.fields["my_field"].queryset=Foo.objects.filter(bar=baz)
return super(MyForm, self).is_valid()
这样,当表单的验证运行时,该字段已经被覆盖
关于javascript - django cms 插件上的动态模型选择字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42380977/