Django的Model字段常用参数介绍

好记性不如乱笔头,记下来总是好的。。。
回复
BG6RSH
帖子: 132
注册时间: 周日 6月 23, 2019 12:00 pm

Django的Model字段常用参数介绍

帖子 BG6RSH »

1.常用参数选项
null:如果为 True,当该字段为空时,Django 会将数据库中该字段设置为 NULL。默认为 False 。

blank:如果设置为 True,该字段允许为空。默认为 False。

null 选项仅仅是数据库层面的设置,然而 blank是涉及表单验证方面。如果一个字段设置为 blank=True ,在进行表单验证时,接收的数据该字段值允许为空,而设置为 blank=False 时,不允许为空。

choice:二元组

default:默认值

help_text:额外的“帮助”文本,随表单控件一同显示。即便你的字段未用于表单,它对于生成文档也是很有用的。

primary_key:如果设置为 True ,将该字段设置为该模型的主键。

在一个模型中,如果你没有对任何一个字段设置 primary_key=True 选项。 Django 会自动添加一个 IntegerField 字段,并设置为主键,主键字段是只可读的。

unique:是否唯一,默认False

verbose_name:字段备注名,为设置,django会将字段的下划线转换为空格做为备注

2.关联关系
ForeignKey:一对多

ManyToManyField:多对多

3.Meta选项
模型的元数据即“所有不是字段的东西”,比如排序选项( ordering ),数据库表名( db_table ),或是阅读友好的单复数名( verbose_name 和 verbose_name_plural )。这些都不是必须的,并且在模型当中添加 Meta类 也完全是可选的。

4.模型方法
1.__str__():返回友好的对象打印值

5.模型继承
1.抽象基类

抽象基类在你要将公共信息放入很多模型时会很有用。编写你的基类,并在 Meta 类中填入 abstract=True。该模型将不会创建任何数据表。当其用作其它模型类的基类时,它的字段会自动添加至子类。
  1. from django.db import models
  2.  
  3. class CommonInfo(models.Model):
  4.     name = models.CharField(max_length=100)
  5.     age = models.PositiveIntegerField()
  6.  
  7.     class Meta:
  8.         abstract = True
  9.  
  10. class Student(CommonInfo):
  11.     home_group = models.CharField(max_length=5)
[/size]
BG6RSH
帖子: 132
注册时间: 周日 6月 23, 2019 12:00 pm

Re: Django的Model字段常用参数介绍

帖子 BG6RSH »

  1. # 获取 Xmqd 的所有字段
  2.     fields = Xmqd._meta.get_fields()
  3.     for f in fields:
  4.         if not (f.one_to_many or f.one_to_one):
  5.             print('字段名:', f.column, '字段中文名:', f.verbose_name)
BG6RSH
帖子: 132
注册时间: 周日 6月 23, 2019 12:00 pm

Re: Django的Model字段常用参数介绍

帖子 BG6RSH »

根据字段名从模型实例中获取字段:
https://geek-docs.com/django/django-que ... cally.html
回复