Python back_填充Django模型中的行为
正如问题的答案所解释的,在SQLAlchemy中,您可以使用参数Python back_填充Django模型中的行为,python,django,django-models,Python,Django,Django Models,正如问题的答案所解释的,在SQLAlchemy中,您可以使用参数back\u populates引用另一个变量名,而不是Django方式,在两个类中定义一个相关字段,使其显式,而不是在一边定义,在另一端使用相关名称或默认值隐式定义\u设置 我喜欢这种方式,因为它遵循Python Zen的原则,显式优于隐式。 问题是如何编写这段代码 类父(基): __tablename_uu='parent' id=列(整数,主键=True) children=关系(“Child”,back_populates=
back\u populates
引用另一个变量名,而不是Django方式,在两个类中定义一个相关字段,使其显式,而不是在一边定义,在另一端使用相关名称
或默认值隐式定义\u设置
我喜欢这种方式,因为它遵循Python Zen的原则,显式优于隐式。
问题是如何编写这段代码
类父(基):
__tablename_uu='parent'
id=列(整数,主键=True)
children=关系(“Child”,back_populates=“parent”)35; parent.children Child.parent
类子(基):
__tablename_uu='child'
id=列(整数,主键=True)
parent=关系(“parent”,back_populates=“children”)35; Child.parent parent.children
在
Django>=3
中,在Django中,您不需要执行back\u populates
,它已经有一个相关的\u name
自动反向添加关系。我知道,但我不喜欢这种方式,因为如果您有许多类变量,您可能会忘记其中的一些。我喜欢在文档中使用类定义,你知道怎么做吗?你不知道。此外,这是没有必要的,和另一个原则冲突不要重复你自己(干)。事实上,您可以使用\u meta
选项查找模型对象的关系。您也可以简单地在模型中添加一行注释来指定backref。此外,如果您将PyCharm与Django支持(付费版)一起使用,那么IDE会在自动完成中包含这些关系。谢谢你的PyCharm提示,尽管我使用VSCode。在Django中,你不需要做返回填充,它已经有了一个相关的\u名称
,可以自动反向添加关系。我知道,但我不喜欢这种方式,因为如果你有很多类变量,你可能会忘记其中的一些。我喜欢在文档中使用类定义,你知道怎么做吗?你不知道。此外,这是没有必要的,和另一个原则冲突不要重复你自己(干)。事实上,您可以使用\u meta
选项查找模型对象的关系。您也可以简单地在模型中添加一行注释来指定backref。此外,如果您将PyCharm与Django支持(付费版)一起使用,那么IDE会在自动完成中包含这些关系。尽管我使用的是VSCode,但还是感谢您提供的PyCharm提示。