簡體   English   中英

由於缺少值,因此ModelForm無法驗證,但是模型字段為null = True

[英]ModelForm won't validate because missing value, but model field has null=True

我有一個問題,我的ModelForm試圖將''分配給一個字段(如果我實際上提供了Product的主鍵,它可以很好地保存,但它不是必填字段,並且如果將該字段留空則不會保存) 。 我認為ORM試圖將該字段設置為''但是:

  • 不應''強制為None ,並且;
  • 為什么不雛型嘗試設置該字段None擺在首位,而不是''

models.py

class Question(models.model):
    fk_product = models.ForeignKey(Product, on_delete=models.SET_NULL, null=True, related_name="product_question")

forms.py

class QuestionForm(forms.ModelForm):
    fk_product=forms.ChoiceField(required=False)
    class Meta:
        model = Question
        fields = ['fk_product',]

錯誤:

無法分配“''”:“ Question.fk_product”必須是“ Product”實例。

產生錯誤的視圖代碼:

    QuestionModelFormset = modelformset_factory(Question,
                                form=QuestionForm,
                                extra=1)
    question_formset = QuestionModelFormset(
                            data=request.POST,
                            files=request.FILES,
                            queryset=Question.objects.all())
    if not question_formset.is_valid(): #error occurs on this line

也嘗試添加blank=True

null=True表示該字段在數據庫中允許為NULL。

blank=True表示可以不帶任何值的形式提交。 否則,它必須具有價值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM