我有以下型号:
class TransType(models.Model):
typeName = models.CharField(max_length=200)
isActive = models.BooleanField(default=True, blank=True)
def __str__(self):
return self.typeName
每当我在不指定isActive值的情况下创建新对象时,即使我已将默认值设置为True,它也会将isActive设置为false的对象保存。这可能是什么问题?
编辑:
<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>
答案 0 :(得分:1)
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()
它必须正常工作
答案 1 :(得分:1)
我假设您正在为TransType
模型使用ModelForm。
blank=True
表示字段可以在格式中为空,不是必需的。
如果表单中的isActive
为空,则值为&#39; &#39;并将被False
视为BooleanField
,在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
,以便在表单中显示该字段。