django 设置外键的时候,related_name的值大写还是小写,规则怎样

在Django中,related_name参数用于定义反向关系的名称,即通过外键字段反向查询关联模型的对象。related_name的值是一个字符串,可以是大写也可以是小写,但通常建议使用小写字母,因为它们更符合Python的命名约定(PEP 8)。

具体规则如下:

  1. 小写字母:通常情况下,建议使用小写字母作为related_name的值。例如:

    class Author(models.Model):
    name = models.CharField(max_length=100) class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='books')

    在这个示例中,related_name的值是'books',这使得你可以通过author.books.all()来获取一个作者的所有书籍。

  2. 大写字母:如果你愿意,也可以使用大写字母作为related_name的值,但这不是推荐的做法。例如:
    class Author(models.Model):
    name = models.CharField(max_length=100) class Book(models.Model):
    title = models.CharField(max_length=100)
    author = models.ForeignKey(Author, on_delete=models.CASCADE, related_name='Books')

    在这个示例中,related_name的值是'Books',你可以通过author.Books.all()来获取一个作者的所有书籍。然而,这种命名风格在Python中不太常见,通常不建议这样做。

    总之,虽然related_name的值不受大小写的强制限制,但在实际开发中,小写字母更符合通用的Python编码惯例。

django 设置外键的时候,related_name的值大写还是小写,规则怎样的更多相关文章

  1. (转)mysql 无法设置外键的原因总结

    在Mysql中创建外键时,经常会遇到问题而失败,这是因为Mysql中还有很多细节需要我们去留意,我自己总结并查阅资料后列出了以下几种常见原因. 1.  两个字段的类型或者大小不严格匹配.例如,如果一个 ...

  2. 关于mysql设置外键,实现参照性完整性约束,以及workbench上的一个bug(?)

    一.本次数据库中有student,course,sc表,其设置情况 -- 创建course表 CREATE TABLE `course` ( `cno` ) NOT NULL, `cname` ) D ...

  3. navicat如何设置外键

    今天上午刚刚弄明白了在navicat for mysql上如何设置外键,现在分享出来,希望能够对大家有帮助. 先介绍一下基本情况.现在有两个表一张是teacher表一张是dept表,现在我想把teac ...

  4. 如何在MySQL中设置外键约束

    引用:http://blog.sina.com.cn/s/blog_53729e4601011wja.html MySql外键设置详解   (1) 外键的使用: 外键的作用,主要有两个:    一个是 ...

  5. Sqlite 设置外键级联更新

    Sqlite 设置外键级联更新 选择好外键表和列以后,勾选更新事件,更新方式设置为CASCADE,即可在外键更新时自动更新

  6. MySQL设置外键报错 #1452 - Cannot add or update a child row: a foreign key constraint fails 解决方法

    MySQL数据库,当我尝试在A表中设置B表的主键为外键时,报出错误:#1452 - Cannot add or update a child row: a foreign key constraint ...

  7. mysql 设置外键约束时如何删除数据

    Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构 解决方法是在Mysql中取消外键约束: SET FOREIGN_KEY_CHECKS=0; 然后将原来表的数据导出到sql语句,重新 ...

  8. mysql 设置外键约束SET FOREIGN_KEY_CHECKS=1

    问题描述:Mysql中如果表和表之间建立的外键约束,则无法删除表及修改表结构 解决方法: 在Mysql中取消外键约束: SET FOREIGN_KEY_CHECKS=0; 然后将原来表的数据导出到sq ...

  9. django ORM 外键详解

    Django中的外键: 首先,为了方便理解,我们把使用ForeignKey的字段所在的表定义为从表,把ForeignKey中to参数连接的表称为主表. 外键使用的先决条件: 在mysql数据表中,数据 ...

  10. django2.0变动数据库设置外键报错

    1.报错TypeError: __init__() missing 1 required positional argument: 'on_delete' django2.0以后创建数据库外键的时候必 ...

随机推荐

  1. kubernets之pod的生命周期容器启动后钩子以及容器结束前钩子

    一 先来介绍容器启动后钩子 1.1  容器启动后钩子,并不是容器启动之后才会执行的操作,而是在容器启动过程中,异步的和容器进行启动的一种钩子它有2种表现形式,包括我们后面提到的容器结束前钩子一样 在一 ...

  2. 平衡树 Treap & Splay [学习笔记]

    平衡树 \(\tt{Treap}\) & \(\tt{Splay}\) 壹.单旋 \(\tt{Treap}\) 首先了解 \(\tt{BST}\) 非常好用的东西,但是数据可以把它卡成一条链 ...

  3. C# winfrom 局域网版多人成语接龙(一)

    在学习 springjdbc+c3p0时做了一个数据库版的获得给定词汇的成语接龙,这个做了之后,我突然就想做一个可供多人游戏的成语接龙游戏,由于自己根本不熟悉java的图形界面开发,感觉没有winfo ...

  4. rabbitmq添加延时通道时报错

    rabbitmq添加延时通道时报错 'x-delayed-type' must be an existing exchange type 解决方案: 我实际用的是x-delayed-type:topi ...

  5. 将.net core api 部署成windows服务

    将.net core api 部署成windows服务   参考 https://blog.csdn.net/qq_38762313/article/details/103311944 将NSSM解压 ...

  6. 企业签名打包错误+[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:]:

    一.问题现象 debug连接真机情况下面,编译正常,调试也是正常的. 使用企业签名命令行编译打包 xcodebuild -target dailybuildipa -configuration Dai ...

  7. 网页CSS源码

    EntryTag { margin-top:20px; font-size:9pt; color:gray } .topicListFooter { text-align:right; margin- ...

  8. CF1184E1题解

    CF11841E1 & blog 尽然想让第一条边最大且这条边在最小生成树中,那么这条边就需要尽量晚. 但是假如加上一条边 \(i\) 可以使 \(u_1\) 和 \(v_1\) 联通并且第 ...

  9. Cannot set properties of undefined (setting 'dataIndex')""

    前端写桑基图的时候碰到以上bug 原因是: 桑基图中的name值有重复的,把重复的name值去掉就好了

  10. FolkMQ 1.6.0(纯血国产,适合信创)

    FolkMQ 是个"新式"的消息中间件.强调:"简而强".可内嵌,可单机,可集群(部署包为 9Mb). 功能简表 角色 功能 生产者(客户端) 发布普通消息.Q ...