答案
正如谢尔盖指出的那样,类模型(** kwargs)无效,并且是Django文档中的拼写错误。
“类”部分来自他们编写时使用的标记
所以,他们在Django文档中的实际含义是:
创建对象
要创建模型的新实例,只需将其实例化即可 其他Python类:
模型(** kwargs)
关键字参数只是您所在字段的名称 在您的模型上定义。请注意,绝不会实例化模型 触摸你的数据库;为此,你需要保存()。
原始问题
我在阅读Django Docs about Model instances时发现了以下内容:
创建对象
要创建模型的新实例,只需将其实例化即可 其他Python类:
class Model(** kwargs)
关键字参数只是您所在字段的名称 在您的模型上定义。请注意,绝不会实例化模型 触摸你的数据库;为此,你需要保存()。
这两个代码有什么区别?
class Model(**kwargs)
new_model = Model(**kwargs)
我知道第二个用kwargs创建了一个类Model的新实例
第一个与它不同吗?对我而言,似乎它重新定义了Model类。
答案 0 :(得分:6)
class Model(**kwargs)
不是valid Python syntax,后者看起来像
class Model(SomeBaseClass):
pass
根据格式判断(该行看起来像一个子标题),这在Django文档中一定是个错误。
如果你看一下Sphinx source of the page,你会发现“类”的东西实际上是Sphinx标记的一部分。他们的意思是
要创建模型的新实例,只需将其实例化即可 其他Python类:
Model(**kwargs)
关键字参数只是您所在字段的名称 在你的模型上定义。
答案 1 :(得分:0)
第一行定义了一个类。 第二行定义了一个类的实例。