Orm 理解PeeWee';s相关的_name属性
我真的很喜欢小便器。它重量轻,易于使用,并且有很好的文档记录。有一件事我很难理解,那就是在实现外键时使用的Orm 理解PeeWee';s相关的_name属性,orm,peewee,Orm,Peewee,我真的很喜欢小便器。它重量轻,易于使用,并且有很好的文档记录。有一件事我很难理解,那就是在实现外键时使用的相关\u name属性。我从不确定该属性是应该与表相关,还是与列相关。有人能给我解释一下我应该用这个名字做什么,怎么用吗?例如,Peeewee文档中的学生/课程示例 假设我有学生,课程,学生课程模型。StudentCourse列的相关名称是什么 我从不确定该属性是应该与表相关,还是与列相关。有人能给我解释一下我应该用这个名字做什么,怎么用吗 外键就像一个指针,一对一。但也有一个隐含的反向引
相关\u name
属性。我从不确定该属性是应该与表相关,还是与列相关。有人能给我解释一下我应该用这个名字做什么,怎么用吗?例如,Peeewee文档中的学生/课程示例
假设我有学生,课程,学生课程模型。StudentCourse列的相关名称是什么
我从不确定该属性是应该与表相关,还是与列相关。有人能给我解释一下我应该用这个名字做什么,怎么用吗
外键就像一个指针,一对一。但也有一个隐含的反向引用——这是相关的名称。示例:
- Tweet有一个外键,指向发送Tweet的用户。反向引用是用户创建的tweets,因此
相关的\u name='tweets'
- 类别本身有一个外键以指示父类别。反向引用是给定父对象的子类别,因此
相关的\u name='children'
- 代码段具有其编写语言的外键。back引用是一种语言的代码段,因此
相关的
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')
啊。这是有道理的。所以m2m表上的相关_名称并没有那么有用。这是我决定的,但我不确定我是否遗漏了什么。谢谢。附录:自peewee版本3.0以来,属性“related_name”已更改为“back_ref”。看见
# 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')