【发布时间】:2020-10-31 13:20:33
【问题描述】:
我创建了一个模型来存储用户名和地点
class UserDetails(models.Model):
name = models.CharField(max_length=50)
place = models.ForeignKey(City, on_delete=models.CASECADE)
我有一个 JSON 文件,我有超过 1000 个用户的数据。喜欢
[
{"name": "A", "place":1},
{"name": "B", "place":3},
{"name": "C", "place":4},
{"name": "D", "place":1},
..
..
]
place 字段与 City 对象 id 相关。当我使用以下语法时
UserDetails.objects.create(**{"name":"A", "place": 3})
然后得到一个错误,我知道我必须传递 obj 而不是传递地点 id:
loc = City.object.get(id=3)
UserDetails.objects.create(**{"name":"A", "place": loc})
这很好,但是我有大量数据如何传递地点 id 或应该使用 bulk_create 将所有 JSON 数据保存在模型中?
【问题讨论】:
-
为什么使用
UserDetails.objects.create()而不是简单地使用UserDetails()? -
@EdwinCruz:
UserDetails(...)构造函数不会将对象保存到数据库中。 -
@WillemVanOnsem 我知道,您只需拨打
save()就可以了。我总是发现自己使用UserDetails( . . . )而不是UserDetails.objects.create( . . . )。认为有一个很好的理由,而不仅仅是偏好。
标签: python-3.x django django-models django-rest-framework django-views