其他分享
首页 > 其他分享> > 【django学习-15】ORM简介与数据表操作

【django学习-15】ORM简介与数据表操作

作者:互联网

from django.db import models<br>
class Publisher(models.Model):
    name = models.CharField(max_length=30, verbose_name="名称")
    address = models.CharField("地址", max_length=50)
    city = models.CharField('城市',max_length=60)
    state_province = models.CharField(max_length=30)
    country = models.CharField(max_length=50)
    website = models.URLField()
 
    class Meta:
        verbose_name = '出版商'
        verbose_name_plural = verbose_name
 
    def __str__(self):
        return self.name
 
class Author(models.Model):
    name = models.CharField(max_length=30)
    def __str__(self):
        return self.name
 
class AuthorDetail(models.Model):
    sex = models.BooleanField(max_length=1, choices=((0, '男'),(1, '女'),))
    email = models.EmailField()
    address = models.CharField(max_length=50)
    birthday = models.DateField()
    author = models.OneToOneField(Author)
 
class Book(models.Model):
    title = models.CharField(max_length=100)
    authors = models.ManyToManyField(Author)
    publisher = models.ForeignKey(Publisher)
    publication_date = models.DateField()
    price=models.DecimalField(max_digits=5,decimal_places=2,default=10)
    def __str__(self):
        return self.title
to :必须参数,关联的模型名称
on_delete:必须参数,设置数据的删除模式,删除模型包括:CASCADE,PROTECT,SET_NULL,SET_DEFAULT,SET和DO_NOTHING
limit_choices_to:设置外键额下拉框选项,用于模型表单和Admin后台系统
related_name:用于模型之间的关联查询,如反向查询
related_query_name:设置模型的查询名称,用于filter和get查询,若设置related_name参数,则以该参数为默认值;如果没有设置,则以模型名称的小写为默认值;
to_field:设置外键与其它模型字段的关联性,默认关联主键;
db_constraint:在数据库里是否创建外键约束,默认True;
swappable:设置关联模型的替换功能;
symmetrical:仅限于ManyToManyField,设置多对多字段之间的对称模式;
through:仅限于ManyToManyField,设置自定义模型C,用于关联和创建模型A和模型B的多对多关系;
through_fields:仅限于ManyToManyField,设置模型C的字段,确认模型C哪些字段用于管理模型A和模型B的多对多关系;
db_table:仅限于ManyToManyField,为管理和存储多对多关系的数据表设置名称。

标签:15,name,models,max,模型,django,数据表,length,ORM
来源: https://www.cnblogs.com/xwltest/p/16694602.html