例如,如果你有一个 app 叫做bookstore(使用manage.pystartappbookstore创建),以 及一个 model 定义为classBook这样将会创建一个名为bookstore_book的数据库表。 如果想自定义数据库的表名称,需要在classMeta使用db_table参数来自定义。 如果你的数据库表名称是一个SQL保留字,或者它包含不允
要覆盖数据库表名,使用 class Meta 中的db_table 参数。 如果你的数据库表名是 SQL 的保留字,或者包含 Python 变量名中不允许的字符——特别是连字符——那也没关系。Django 会在幕后引用列名和表名。 在MariaDB 和 MySQL 中使用小写的表名 当你通过 db_table 覆盖表名时,强烈建议你使用小写的表名,特别是...
classCustomer(Human): first_name=models.CharField(max_length=100) birth_day=models.DateField() 2、db_table--重写数据表名称 默认情况下,Django 会根据模型类的名称和包含它的应用的名称自动指定数据库表名称。eg:blog_type(blog:APP名称,type:模型类名称) 使用Meta类中的 db_table 参数来重写数据表的名称...
在这个过程中,class Meta 中的一些属性会直接影响数据库表的创建,例如表名、是否管理表的生命周期、唯一性约束等。 class Meta 中常用的属性及其功能 db_table: 定义模型在数据库中的表名。如果不设置,Django 会自动生成一个表名,格式为 app_label_modelname。
db_table是用于指定自定义数据库表名的。Django有一套默认的按照一定规则生成数据模型对应的数据库表名,如果你想使用自定义的表名,就通过这个属性指定,比如: table_name='my_owner_table' 若不提供该参数, Django 会使用 app_label + '_' + module_name 作为表的名字. ...
type_name class Meta: db_table = 'BookType' # 表名称 verbose_name = '图书类型' # 表备注 # 表名复数形式,如果不设置末尾会多一个s verbose_name_plural = verbose_name ordering = ['id'] # 排序字段 class BookInfo(models.Model): """图书模型类""" title = models.CharField(verbose_name=u...
from django.db import models class Question(models.Model): text = models.TextField() # ... class Answer(models.Model): question = models.ForeignKey(Question, on_delete=models.CASCADE) # ... class Meta: order_with_respect_to = "question" ...
objects=DepartmentManager()def__str__(self):returnself.nameclassMeta(object):# 定义表名 db_table="department"# 定义在管理后台显示的名称 verbose_name='部门'# 定义复数时的名称(去除复数的s) verbose_name_plural=verbose_name Django模型类的Meta是一个内部类,它用于定义一些Django模型类的行为特性。而...
Django model中的 class Meta 详解 通过一个内嵌类 "class Meta" 给你的 model 定义元数据, 类似下面这样: class Foo(models.Model): bar = models.CharField(maxlength=30) class Meta: # ... 1. 2. 3. 4. 5. Model 元数据就是 "不是一个字段的任何数据" -- 比如排序选项, admin 选项等等. ...
class Meta: db_table = 'article' # 通过db_table自定义数据表名 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 通过db_index和Meta index选项给数据表字段建立索引 使用索引可快速访问数据库表中的特定信息。数据库索引好比是一本书前面的目录,没有索引目录的话,你访问书中某个页面需要从第1页遍...