2017-02-22 109 views
1

我目前正在研究一個django cms插件,其模型選擇字段依賴於表單中的另一個字段。我現在通過ajax做的事情是,當選擇觸發字段時,通過ajax更新依賴模型選擇字段,以更改選擇字段中的選項。然而,在提交表單時,我遇到了這個錯誤django cms插件上的動態模型選擇字段

「選擇一個有效的選擇。那是不是可用的選擇之一。」

我做了一些在堆棧溢出挖掘,發現了類似的問題

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

一些挖後,我才得以通過覆蓋字段的查詢形式的is_valid()過程設置像這樣

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

這樣,當窗體的驗證是要做到這一點運行,該字段已被覆蓋