zoukankan      html  css  js  c++  java
  • django-ForeignKey,OneToOneField,ManyToManyField

    进入到django自带的related.py中,可以看到

    1.ForeignKey

    初始化的参数有:

    to, on_delete, related_name=None, 
    related_query_name=None,limit_choices_to=None,
    parent_link=False, to_field=None,
    db_constraint
    =True, **kwargs

    假设我们有:

    class Author(models.Model):
        author = models.CharField(max_length=250)
     
    class Books(models.Model): 
        book = models.ForeignKey(to='Author',on_delete=models.CASCADE,to_field='id')

    to:被关联表的名称

    on_delete:删除带有外键的信息时,定义了删除的操作:

    • CASCADE:删除作者信息一并删除作者名下的所有书的信息;
    • PROTECT:删除作者的信息时,采取保护机制,抛出错误:即不删除Books的内容;
    • SET_NULL:只有当null=True才将关联的内容置空;
    • SET_DEFAULT:设置为默认值;
    • SET( ):括号里可以是函数,设置为自己定义的东西;
    • DO_NOTHING:字面的意思,啥也不干,你删除你的干我毛线关系;

    to_field:被关联的字段,一般是主键,也可以是值唯一的字段

    2.OneToOne

    初始化参数有:

    to, on_delete, to_field=None, **kwargs

    3.ManyToMany

    初始化参数有:

    to, related_name=None, related_query_name=None,
    limit_choices_to=None, symmetrical=None, through=None,
    through_fields=None, db_constraint=True, db_table=None,
    swappable=True, **kwargs

  • 相关阅读:
    MySQL-数据表操作
    MySQL基础命令
    Navicat 15激活
    禅道-启动失败问题整理
    python-开头的注释作用及区别
    SpringBoot、SpringCloud版本中GA/PRE/SNAPSHOT的详解
    mybatis的一些重要配置
    简历对应的知识点
    idea的破解
    SFTP和FTP的区别
  • 原文地址:https://www.cnblogs.com/xiximayou/p/11778048.html
Copyright © 2011-2022 走看看