我有一个modelform,它为我的类保存并创建一个新对象
Person
.
这个班
人
有一个名为
is_adult
.
它的价值是
model.CharField
用一个
max_length=1
,其中我只保存值
Y
或
N
(是/否)。
问题是这个属性被呈现为
Select
HTML字段。在这个select字段中,可用的选项是“yes”和“no”,因此当表单作为post方法发送时,它的值是2-3 length charfield,但是它的model attr的max_length是1,所以我需要对这两个选项进行切片
之前
检查
if form.is_valid()
. 否则表单将不被接受,因为它以2-3个字符的值发布,并且它应为1个字符。
模型:
class Person(models.Model):
is_adult = models.CharField(max_length=1, null=False, choices=ADULT_CHOICES, default='N')
Py.Py:
ADULT_CHOICES= (
(0, 'No'),
(1, 'Yes'),
)
PYS:
class PersonForm(forms.ModelForm):
class Meta:
model = Person
fields = ["is_adult"]
widgets = {
'is_adult': forms.Select(attrs={'class': 'form-control'}),
}
labels= {
'is_adult': 'Is an adult?',
}
当然,views.py应该是“y”或“n”,而不是“yes”或“no”。
我试图用python语法分割它的字符串,但是在“form.is valid”中被拒绝之前,我无法获取表单字段值。
有什么解决办法吗?谢谢!