有没有可能用listdictionary或其他的东西来做类似的事情?

data_dict = {
    'title' : 'awesome title',
    'body' : 'great body of text',
}

Model.objects.create(data_dict)

如果我能延长就更好了:

Model.objects.create(data_dict, extra='hello', extra2='world')

推荐答案

如果titlebody是模型中的字段,则为you can deliver the keyword arguments in your dictionary using the ** operator.

假设您的模型名为MyModel:

# create instance of model
m = MyModel(**data_dict)
# don't forget to save to database!
m.save()

至于你的第二个问题,词典必须是最后的论据.同样,extraextra2应该是模型中的字段.

m2 =MyModel(extra='hello', extra2='world', **data_dict)
m2.save()

Django相关问答推荐

Djnago admin中 Select 字段的自定义查询

Django多对多关系报错:<title> object (None)>需要先设置id字段的值.

有没有办法在Django中按需/点击仅获取和序列化一部分数据以提高性能?

无法创建超级用户,因为 Django 中的一列(外键)不能为空

在Django Rest Framework中按模型属性排序时如何避免重新计算?

Django 长时间运行带有线程/处理的异步任务

什么时候在 django rest 框架序列化程序中调用创建和更新?

Django:在模板中显示当前语言环境

Django 相当于 COUNT 和 GROUP BY

如何测试某个日志(log)消息是否记录在 Django 测试用例中?

将 XML 从 URL 解析为 python 对象

CherryPy 与 Django

Django:创建索引:非唯一,多列

有 Django List View 模型排序吗?

Django post_save 在不覆盖模型 save() 的情况下防止递归

如何以编程方式对 Django 中的用户进行身份验证?

Django模板转换为字符串

使用 request.user 的 Django 和中间件始终是匿名的

django-getlist()

获取'str'对象在Django中没有属性'get'