我希望在通过Django中的from进入时,模型的父类别为空/ null。是否可以通过空白表单传递空值?
这是我的models.py
from django.db import models
class Category(models.Model):
category_name = models.CharField(max_length=300)
category_code = models.CharField(max_length=100)
category_parent = models.ForeignKey('self', blank=True, null=True)
category_image = models.ImageField(upload_to='category')
def __str__(self):
return self.category_name
并且forms.py
from django import forms
from backend.models import Category
class CategoryForm(forms.ModelForm):
category_parent = forms.ModelChoiceField(
queryset=Category.objects.all(), empty_label='None')
category_image = forms.ImageField()
class Meta:
model = Category
fields = ('category_name', 'category_code',)
如果没有选择任何内容,我想为父选择字段设置一个空值。或者,如果我输入类别中的第一个值,则在没有父项时应该指向null。
答案 0 :(得分:1)
我希望我能做到这一点,但我猜测即使将empty_label
设置为None
,您仍然会看到所选列表中的第一个类别。
当您覆盖ModelForm
字段时,就像现在对category_parent
所做的那样,您会丢失模型中required=False
的自动连接的blank=True
表单对应方。
尝试将required=False
添加到表单字段,如下所示:
category_parent = forms.ModelChoiceField(queryset=Category.objects.all(), empty_label='None', required=False)