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. C# 实现中文转颜色 - 实现根据名字自动生成头像

    一.C#实现中文转颜色 - 实现根据名字自动生成头像 原理说明: 由于名字图像是自动生成,背景颜色不一样,可以考虑一下几种方法: 1)使用随机数来自动生成一个16进制颜色字符串,作为头像的背景颜色: ...

  2. firewall防火墙基础配置

    Firewalld防火墙 Centos7 中集成了防火墙管理工具, Firewall系统动态防火墙管理器是作为默认的防火墙工具. 它支持规则动态更新,并加入zone区域概念. Firewalld防火墙 ...

  3. 一文带你理解透MyBatis源码

    本文分享自华为云社区<一文彻底吃透MyBatis源码!!>,作者:冰 河. 写在前面 随着互联网的发展,越来越多的公司摒弃了Hibernate,而选择拥抱了MyBatis.而且,很多大厂在 ...

  4. ABC340

    E 我们可以知道每一个点在每一轮加多少,具体如下: 假如现在操作的点的为 \(k\).那么所有的数都至少会加 \(\dfrac{A_k}{n}\).但是肯定有剩的,剩了 \(A_k \mod n\). ...

  5. Mysql常见使用问题的解决方法

    问题一:Mysql插入中文数据时,报错"incorrect string value"字符转换不正确 解决方法: 第一种方式: 1.更改Mysql安装目录下的文件my.ini(一般 ...

  6. sshd服务部署

    sshd服务部署 软件安装修改配置文件启动使用​ 1.搭建所有服务的套路 关闭防火墙和selinux(实验环境都先关闭掉) 配置yum源(公网源或者本地源) 软件安装和检查 了解并修改配置文件 启动服 ...

  7. vue bus传参

    新建一个js文件,命名为bus.js.bus.js文件的内容为: import Vue from 'vue' const bus = new Vue() export default bus 页面de ...

  8. Lucene demo演示搜索查询歌手,歌名,歌词

    1.导入pom jar文件 <dependency> <groupId>org.apache.lucene</groupId> <artifactId> ...

  9. 《最新出炉》系列入门篇-Python+Playwright自动化测试-51- 字符串操作 - 上篇

    1.简介 在日常的自动化测试工作中进行断言的时候,我们可能经常遇到的场景.从一个字符串中找出一组数字或者其中的某些关键字,而不是将这一串字符串作为结果进行断言.这个时候就需要我们对字符串进行操作,宏哥 ...

  10. 记一次 .NET某机械臂上位系统 卡死分析

    一:背景 1. 讲故事 前些天有位朋友找到我,说他们的程序会偶发性的卡死一段时间,然后又好了,让我帮忙看下怎么回事?窗体类的程序解决起来相对来说比较简单,让朋友用procdump自动抓一个卡死时的du ...