- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我真的很喜欢 Peewee ORM。它轻巧,易于使用,并且有很好的文档记录。我难以理解的一件事是实现外键时使用的 related_name
属性。我永远不确定该属性是否应该与表或列相关。有人可以向我确切解释我应该使用这个名字的目的吗?如何使用?例如,Peeewee 文档中的学生/类(class)示例。
https://peewee.readthedocs.org/en/2.0.2/peewee/fields.html#implementing-many-to-many
class Student(Model):
name = CharField()
class Course(Model):
name = CharField()
class StudentCourse(Model):
student = ForeignKeyField(Student)
course = ForeignKeyField(Course)
假设我有 Student、Course、StudentCourse 模型。 StudentCourse 列的相关名称是什么?
最佳答案
I'm never sure whether the property should relate to the table, or to the column. Could someone explain to me exactly what I should be using the name for, and how?
外键就像一个指针,一对一。但也有一个隐含的反向引用——这是相关的名称。示例:
related_name='tweets'
。related_name='children'
。related_name='snippets'
。For example, with the Student/Courses example found in the Peeewee docs themselves.
那是多对多,因此反向引用不是很“清晰”,因为外键存在于联结表中。您的参照系是联结表,因此在这两种情况下反向引用都是 studentcourses
,尽管这没有帮助,因为反向引用只会将您带到联结表。因此,对于多对多,通常可以将反向引用保留为默认值,因为您的查询通常如下所示:
# get students in english 101
Student.select().join(StudentCourse).join(Course).where(Course.name == 'ENGL 101')
# get huey's courses
Course.select().join(StudentCourse).join(Student).where(Student.name == 'Baby Huey')
关于orm - 了解 PeeWee 的 related_name 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26976059/
我有几个模型,它们有一个外键返回到 Django 中的一个模型,该模型有一个外键返回到 auth User。 models.py class UserDetails(models.Model):
经过一年的 Django 经验,我发现我不太确定我使用 Django related_names正确。 想象一下我有三个模型 classA(models.Model): pass classB
根据 documentation ,相关名称必须是唯一的。再次根据 documentation 的默认值(如果开发人员未明确设置)是 FOO_set ,其中 FOO 是源模型名称。 因此,如果我有两个
我的模型发生了现场冲突: class Visit(models.Model): user = models.ForeignKey(User) visitor = models.Fo
related_name 参数对 ManyToManyField 和 ForeignKey 字段有什么用处?比如给定下面的代码,related_name='maps'的作用是什么? class Map
例子: class Route(models.Model): last_waypoint_visited = models.ForeignKey('WayPoint') class WayPo
抱歉没有描述性的标题,但我真的不知道如何措辞。 假设我有两个模型: class Person(...): name = ... #have an attribute class Family(..
我有以下型号: class A(models.Model): name = models.CharField(max_length=100) c = models.ForeignKey
我有一个用户模型: Class User(models.Model): #some fields 还有另一个 Profile Model,它由字段 -> 母亲和父亲组成。 Class Profi
我有一个抽象基础模型和 2 个继承模型,我需要强制相关名称采用特定格式。 class Animal(models.Model): legs = models.IntegerField(rela
先定义两个模型,一个是A,一个是B,是一对多的类型。 ? 1
我有这个抽象模型: class HasSystemMessage(models.Model): class Meta: abstract = True messages
我正在使用 Python(3.7) 和 Django(2.2) 开发一个项目,其中我实现了两个模型 ItemModel 和 Images 因此每个项目都会有多个图像并将项目添加到 images 模型中
我有两个非常相似的 M2M 领域模型,不知何故,我试图查询其中一个,它工作得很好,但当我尝试使用另一个模型的相同代码时,它给了我错误。我能找到的唯一区别是 lated_name 我找到了解决方法,但我
我的大部分 Django 模型都使用相同的 User Mixin,因此我想为该字段动态创建 related_name。 我希望它是 TestModel 变成 test_models 的类名,或者甚至是
当我在多个字段上使用 django Prefetch 对象 ( https://docs.djangoproject.com/en/2.2/ref/models/querysets/#prefetch
我试图在 Django 中设计一个带有一些审计字段的模型。例如创建于、创建于、更新于和更新于。这四列将在不同应用程序的所有模型中重复出现。 我的第一个问题,是否有一种方法可以放置这些列,并且可以在我每
我最近在我的 Django 模型中遇到了 ForeignKey 冲突。我需要有两个外键(owner、assigned_to)最终指向同一个模型(一个用户)。 据我了解,我需要一个 related_na
我真的很喜欢 Peewee ORM。它轻巧,易于使用,并且有很好的文档记录。我难以理解的一件事是实现外键时使用的 related_name 属性。我永远不确定该属性是否应该与表或列相关。有人可以向我确
我已经搜索了一段时间来解决我的问题,但我似乎无法解决这个问题。 所以我有两个模型: class Messages(models.Model): _db = 'somedb' id =
我是一名优秀的程序员,十分优秀!