django cms插件

时间:2017-02-22 01:17:01

标签: javascript ajax django python-2.7 django-cms

我目前正在开发一个django cms插件,其模型选择字段依赖于表单中的另一个字段。我现在通过ajax做的是,当选择触发字段时,依赖模型选择字段通过ajax更新以更改选择字段中的选项。但是,在提交表单时,我遇到了此错误

“选择有效的选择。这不是可用的选择之一。“

我做了一些挖掘堆栈溢出并找到了类似的问题

While using ajax with django form, getting error "Select a valid choice. That is not one of the available choices."

根据上面的链接,我应该以插件本身的形式更新模型选择字段,具体取决于我将从request.POST

获取的触发字段的值。

我如何为django cms插件执行此操作?我应该覆盖cms插件的哪种方法?我在插件的CMSPluginBase类中假设了一个方法,但我不确定要覆盖哪种方法,以及如何获取我的插件使用的当前表单,以便我可以覆盖它在上述方法中?

由于

1 个答案:

答案 0 :(得分:1)

经过一番挖掘,我能够通过覆盖表格的is_valid()过程中的字段查询集来实现这一点

def is_valid(self):
    self.fields["my_field"].queryset=Foo.objects.filter(bar=baz)
    return super(MyForm, self).is_valid() 

这样,当运行表单的验证时,该字段已被覆盖