Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python back_填充Django模型中的行为_Python_Django_Django Models - Fatal编程技术网

Python back_填充Django模型中的行为

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=

正如问题的答案所解释的,在SQLAlchemy中,您可以使用参数
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提示。