簡體   English   中英

django many2many字段不需要

[英]django many2many field make not required

我創建了一個基於模型的表單。 該模型有許多領域。 我定義了這樣的字段:

contacts = models.ManyToManyField(Contact, blank=True, null=True)

我現在想知道為什么生成的表單說這個字段不能為空。 當我沒有為聯系人字段選擇聯系人時,我總是收到錯誤消息“此字段是必需的。”。

什么錯了?

在您的表單聲明中,將此字段標記為required=False

class MyForm(forms.ModelForm):
  contacts=forms.ModelMultipleChoiceField(queryset=Contact.objects.all(),required=False)
  class Meta:
    model=MyModel

可能你在添加blank=True, null=True之前做了syncdb嗎?

syncdb只會在數據庫中不存在時創建表。 模型的更改必須直接使用SQL或使用遷移工具(如South)在數據庫中手動完成。

當然,如果您仍處於早期開發階段,則刪除數據庫並再次運行syncdb會更容易。

你在這里使用null = True會讓人感到困惑。 manyToMany字段導致第三個表將一個模型與另一個模型相關聯。 例如

Business <-> Contact

如果business.contacts為空,則不會在此表中輸入任何記錄。 null=True會讓我覺得你打算將NULL記錄添加到這個表中,這似乎沒有效果。

通常,您將關閉這兩個屬性。

暫無
暫無

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

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