django blank null属性

测试环境

在models写入

class User(models.Model):
    name = models.CharField(max_length=12)
    psw = models.CharField(max_length=12)
    blank_true = models.CharField(max_length=12,blank=True)
    null_true = models.CharField(max_length=12,null=True)
    null_blank_true = models.CharField(max_length=12,blank=True,null=True)

views写下

from django.shortcuts import render,HttpResponse
from django.forms import Form
from django.forms import fields
from app01 import models
# Create your views here.
class UserForm(Form):
    name = fields.CharField(
        required=True,
        max_length=12
    )
    psw = fields.CharField(
        required=True,
        max_length=12
    )
    blank_true = fields.CharField(
        required=False,
        max_length=12
    )
    null_true = fields.CharField(
        required=False,
        max_length=12
    )
    null_blank_true = fields.CharField(
        required=False,
        max_length=12
    )

def test(request):
    if request.method == 'GET':
        userform = UserForm()
        return render(request,"test.html",locals())
    else:
        userform = UserForm(data=request.POST)
        if userform.is_valid():
            models.User.objects.create(**userform.cleaned_data)
            return HttpResponse('OK')
        else:
            return HttpResponse('NO')
def test1(request):
    obj = models.User.objects.all().first()
    print(type(obj.blank_true))
    print(type(obj.null_true))
    print(type(obj.null_blank_true))

    return HttpResponse("blank_true:%s"%(type(obj.blank_true))+"null_true:%s" % type(obj.null_true)+"null_blank_true:%s"%type(obj.null_blank_true))

html文档

<form method="post" novalidate>
    {% csrf_token %}
    <p>名字:{{ userform.name }}</p>
    <p>密码:{{ userform.psw }}</p>
    <p>blank_true:{{ userform.blank_true }}</p>
    <p>null_true:{{ userform.null_true }}</p>
    <p>null_blank_true:{{ userform.null_blank_true }}</p>
    <input type="submit">
</form>

在表单中blank_true,null_true,null_blank_true都默认都没有输入数据的情况下,打印出一下结果

blank_true <class 'str'>
null_true <class 'NoneType'>
null_blank_true <class 'NoneType'>
QQ截图20171109161456.png

总结

null
*如果为 True , Django 在数据库中会将空值(empty)存储为 NULL 。默认为False 。

blank
*设置字段是否可以为空,默认为False(不允许为空)

区别

和null的区别在于:null是数据库的范围,而blank是用于验证。如果一个字段的 blank=True ,Django 在进行表单数据验证时,会允许该字段是空值。如果字段的 blank=False ,该字段就是必填的。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容