django的常用字段和参数、admin后台管理
参考链接:
https://www.cnblogs.com/maple-shaw/articles/9323320.html
1. 常用字段和参数
AutoField
IntegerField
CharField
DateField DatetimeField
BooleanField
class Person(models.Model): nid = models.AutoField(primary_key=True) name = models.CharField(max_length=32) age = models.IntegerField() #int类型 birth = models.DateTimeField(auto_now=True)
在执行输入迁移的两条命令。
python manage.py makemigrations
python manage.py migrate
在python console中,可以自己添加和修改内容。
admin管理后台
1、启动项目
2、访问url:默认:http://127.0.0.1:8000/admin
用户名和密码自己创建。
在终端里执行:python manage.py createsuperuser
登陆上来,是django自己的管理后台,要想添加自己的。
输入如上。注册自己的类。
字段参数
null 数据库中字段是否可以为空 db_column 数据库中字段的列名 default 数据库中字段的默认值 primary_key 数据库中字段是否为主键 db_index 数据库中字段是否可以建立索引 unique 数据库中字段是否可以建立唯一索引 unique_for_date 数据库中字段【日期】部分是否可以建立唯一索引 unique_for_month 数据库中字段【月】部分是否可以建立唯一索引 unique_for_year 数据库中字段【年】部分是否可以建立唯一索引 verbose_name Admin中显示的字段名称 blank Admin中是否允许用户输入为空 editable Admin中是否可以编辑 help_text Admin中该字段的提示信息 choices Admin中显示选择框的内容,用不变动的数据放在内存中从而避免跨表操作 如:gf = models.IntegerField(choices=[(0, '何穗'),(1, '大表姐'),],default=1) error_messages 自定义错误信息(字典类型),从而定制想要显示的错误信息; 字典健:null, blank, invalid, invalid_choice, unique, and unique_for_date 如:{'null': "不能为空.", 'invalid': '格式错误'} validators 自定义错误验证(列表类型),从而定制想要的验证规则 from django.core.validators import RegexValidator from django.core.validators import EmailValidator,URLValidator,DecimalValidator,\ MaxLengthValidator,MinLengthValidator,MaxValueValidator,MinValueValidator 如: test = models.CharField( max_length=32, error_messages={ 'c1': '优先错信息1', 'c2': '优先错信息2', 'c3': '优先错信息3', }, validators=[ RegexValidator(regex='root_\d+', message='错误了', code='c1'), RegexValidator(regex='root_112233\d+', message='又错误了', code='c2'), EmailValidator(message='又错误了', code='c3'), ] ) 字段参数
默认none都等于false。blank都等于false。
这时就不是必填的了。这个是django控制的。
刷新变了
发现直接就不显示了。
choice:
gender = models.BooleanField(choices=((0,'男'),(1,'女')))
在执行:
python manage.py makemigrations
选中0 --1 ,默认选择男
python manage.py migrate
增加了这个字段,django后台显示:
在执行2条数据库迁移
增加了person表,数据库都是正常的。
如果说你改的比较累,你可以修改django的字符集为中文。
在settings里面。
# LANGUAGE_CODE = 'en-us'修改为
LANGUAGE_CODE = 'zh-hans'
from django.db import models # Create your models here. class Person(models.Model): nid = models.AutoField(primary_key=True) name = models.CharField(verbose_name='姓名',max_length=32,null=True,blank=True,db_column='username') age = models.IntegerField(editable=False) #int类型 birth = models.DateTimeField(auto_now=True) gender = models.BooleanField(choices=((0,'男'),(1,'女'))) #男 女是给前端看的。 class Meta: # 数据库中生成的表名称 默认 app名称 + 下划线 + 类名 db_table = "person" # admin中显示的表名称 verbose_name = '个人信息' # verbose_name加s verbose_name_plural = '所有用户信息' # # 联合索引 # index_together = [ # ("pub_date", "deadline"), # 应为两个存在的字段 # ] # # # 联合唯一索引 # unique_together = (("driver", "restaurant"),) # 应为两个存在的字段
作者:wangkaiok —— 小菜鸟111
出处:http://www.cnblogs.com/wangkaiok/
本文版权归作者和博客园共有,但未经作者同意禁止转载,转载必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。