繁体   English   中英

Django-创建模型的新实例

[英]Django - create a new instance of a model

回答

正如Sergey所指出的那样, 类Model(** kwargs)是无效的,并且是Django文档中的错字。
“类”部分来自他们在编写时使用的标记。

因此,它们在Django文档中的实际含义是:

创建对象

要创建模型的新实例,只需像其他任何Python类一样实例化它:

型号(** kwargs)

关键字参数只是您在模型上定义的字段的名称。 请注意,实例化模型绝不会影响您的数据库。 为此,您需要save()。




原始问题

在阅读有关Model实例Django文档时,我发现了以下内容

创建对象

要创建模型的新实例,只需像其他任何Python类一样实例化它:

类模型(** kwargs)

关键字参数只是您在模型上定义的字段的名称。 请注意,实例化模型绝不会影响您的数据库。 为此,您需要save()。


这两个代码有什么区别?

class Model(**kwargs)
new_model = Model(**kwargs)


我知道第二个实例使用kwargs创建了Model类的新实例。
第一个与此不同吗? 在我看来,它似乎重新定义了Model类。

class Model(**kwargs)不是有效的Python语法 ,后者看起来像

class Model(SomeBaseClass):
    pass

从格式判断(该行看起来像一个子标题),这在Django文档中一定是错误的。

如果查看页面Sphinx源 ,您会发现“类”实际上是Sphinx标记的一部分。 他们的意思是

要创建模型的新实例,只需像其他任何Python类一样实例化它:

 Model(**kwargs) 

关键字参数只是您在模型上定义的字段的名称。

第一行定义一个类。 第二行定义了一个类的实例。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM