Django - 创建模型的新实例

时间:2013-02-25 19:54:40

标签: python django django-models python-2.7

答案

正如谢尔盖指出的那样,类模型(** kwargs)无效,并且是Django文档中的拼写错误。
“类”部分来自他们编写时使用的标记
所以,他们在Django文档中的实际含义是:

  

创建对象

     

要创建模型的新实例,只需将其实例化即可   其他Python类:

     

模型(** kwargs)

     

关键字参数只是您所在字段的名称   在您的模型上定义。请注意,绝不会实例化模型   触摸你的数据库;为此,你需要保存()。




原始问题

我在阅读Django Docs about Model instances时发现了以下内容:

  

创建对象

     

要创建模型的新实例,只需将其实例化即可   其他Python类:

     

class Model(** kwargs)

     

关键字参数只是您所在字段的名称   在您的模型上定义。请注意,绝不会实例化模型   触摸你的数据库;为此,你需要保存()。


这两个代码有什么区别?

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


我知道第二个用kwargs创建了一个类Model的新实例 第一个与它不同吗?对我而言,似乎它重新定义了Model类。

2 个答案:

答案 0 :(得分:6)

class Model(**kwargs)不是valid Python syntax,后者看起来像

class Model(SomeBaseClass):
    pass

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

如果你看一下Sphinx source of the page,你会发现“类”的东西实际上是Sphinx标记的一部分。他们的意思是

  

要创建模型的新实例,只需将其实例化即可   其他Python类:

Model(**kwargs)
     

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

答案 1 :(得分:0)

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