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"),)  # 应为两个存在的字段
    

猜你喜欢

转载自www.cnblogs.com/wangkaiok/p/10487041.html