私は2つのモデルを持っています製品とカテゴリー
class Product(models.Model):
categories = models.ManyToManyField(Category, related_name='products')
class ProductModelForm(ModelForm):
class Meta:
model = Product
fields = ['categories', 'name', 'description']
デフォルトでは、カテゴリが導入されていない場合、Djangoは検証エラーをスローしません。
M2M関係を必須フィールドにするにはどうすればよいですか?
多対多の関係は関係を表す追加のテーブルを構築し、テーブルの1つのすべてのIDを指定する方法がない(少なくとも方言不変)ため、モデルレイヤーでこれを強制することはできません。それは、存在する必要があることを指します。
ただし、次のようにすることで、これを形式(たとえば、ModelForm
)で強制できますrequired=True
。
class ProductModelForm(EnhancedWidgetModelForm):
categories = forms.ModelMultipleChoiceField(queryset=Category.objects.all(), required=True)
class Meta:
model = Product
fields = ['categories', 'name', 'description']
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加