我想使用manage.py loaddata initial_data.json
填充Django数据库,其中json文件包含多个对象的规范。我的问题是这些对象具有引用Django User对象的'user'属性,以指示哪个用户创建了它们。这些对象的模型如下所示:
from django.db import models
from django.contrib.auth.models import User
class MySpecialModel(models.Model):
name = models.CharField(max_length=200)
user = models.ForeignKey(User)
我的json中的对象将如下所示:
[{"fields":{
"name": "some name",
"user": XXX
}
...]
问题在于我不知道用什么来代替XXX来表示用户。我尝试过用户名,但是Django告诉我它需要XXX的数字。使用数字不会产生任何错误,但我没有看到我的数据库填充。那么有没有办法将Django对象放在initial_data.json文件中?
答案 0 :(得分:4)
你应该在那里写一个user.pk
,它是一个整数值。
[{"fields":{
"name": "some name",
"user": 1
}
...]
显然,在导入具有外键的任何对象之前,应该创建具有该pk的用户,因此可能更容易通过admin创建一些(假的或非假的)用户并导出它们:{{1} }