Django ModelForm未保存BooleanField默认值
我有以下型号:Django ModelForm未保存BooleanField默认值,django,django-models,Django,Django Models,我有以下型号: class TransType(models.Model): typeName = models.CharField(max_length=200) isActive = models.BooleanField(default=True, blank=True) def __str__(self): return self.typeName 每当我在未指定isActive值的情况下创建新对象时,它都会将isActive设置为false保
class TransType(models.Model):
typeName = models.CharField(max_length=200)
isActive = models.BooleanField(default=True, blank=True)
def __str__(self):
return self.typeName
每当我在未指定isActive值的情况下创建新对象时,它都会将isActive设置为false保存对象,即使我已将默认设置为True。这里可能有什么问题
编辑:
<form method="POST" action="{% url 'trans:createmode' %}" class="modal-content form-horizontal" id="creator">
{% csrf_token %} {{ form }}
<label for="mode" class="col-sm-3 control-label">Transport Mode</label>
<input type="text" name="typeName" maxlength="200" class="form-control" required="required" id="typeName">
<input type="submit" class="btn btn-fill btn-success pull-right" id="submit" value="Save">
</form>
{%csrf_令牌%}{{form}
运输方式
嗨,你能这样试试吗
model.py
class TransType(models.Model):
typeName = models.CharField(max_length=200)
isActive = models.BooleanField(default=True)
def __str__(self):
return self.typeName
只需删除blank=True,我想它一定在工作
只要去django shell,像这样做就行了
object = TransType()
object. typeName = 'test'
object.save()
它一定在工作我假设您使用的是
TransType
model的ModelForm。
blank=True
表示表单中的字段可以为空,这不是必需的
如果isActive
在表单中为空,则值将为“”,并将被布尔字段处理为False
,在django shell中测试:
from django.forms.fields import BooleanField
field = BooleanField()
field.to_python('') # Results False
field.to_python('Test') # Results True
field.to_python(True) # Results True
建议:您可以在表单字段中添加initial=True
,或从模型字段中删除blank=True
,以便表单中需要该字段。显示表单代码please@BearBrown我添加了iti mean form类,更好的是,如果没有blank=True部分,它将无法正常工作。我只是添加它来检查它是否有效