Django模型不需要字段
我有这样一个表格:
class My_Form(ModelForm): class Meta: model = My_Class fields = ('first_name', 'last_name' , 'address')
我怎样才能把地址栏作为可选项?
猜猜你的模型是这样的:
class My_Class(models.Model): address = models.CharField()
你的表格:
class My_Form(ModelForm): address = forms.CharField(required=False) class Meta: model = My_Class fields = ('first_name', 'last_name' , 'address')
class My_Form(forms.ModelForm): class Meta: model = My_Class fields = ('first_name', 'last_name' , 'address') def __init__(self, *args, **kwargs): super(My_Form, self).__init__(*args, **kwargs) self.fields['address'].required = False
你将不得不添加:
address = forms.CharField(required=False, blank=True, null=True)
从@ Atma的回答评论@Anentropic的解决scheme为我工作。 而且我认为这也是最好的。
他的评论:
null = True,blank = True将导致ModelForm字段为required = False
我只是将其设置在我的UserProfile
类的ManyToMany字段中,并且工作完美无瑕。
我的UserProfile
类现在看起来像这样(注意friends
字段):
class UserProfile(models.Model): user = models.OneToOneField(User, on_delete=models.CASCADE) friends = models.ManyToManyField('self', null=True, blank=True)
我也认为这是最好的解决scheme,因为你做同样的事情,把null
和blank
为True
,天气你有一个简单的char
字段,或者像我一样, ManyToMany
字段。
再次感谢@Antropic。 🙂
PS我写了这个post,因为我不能评论(我有不到50的声望),但也因为我觉得他的评论需要更多的曝光。
PPS如果这个答案对你有帮助,请打开他的评论。
干杯:)