Json 在Django的loaddata中设置外键
我设置了两个类,其中一个用户可能有多个访问密钥Json 在Django的loaddata中设置外键,json,django,python-2.7,django-models,Json,Django,Python 2.7,Django Models,我设置了两个类,其中一个用户可能有多个访问密钥 class User(models.Model): first_name = models.CharField(max_length=50) middle_name = models.CharField(max_length=50) last_name = models.CharField(max_length=50) email = models.EmailField() password = models
class User(models.Model):
first_name = models.CharField(max_length=50)
middle_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
email = models.EmailField()
password = models.CharField(max_length=50)
birthday = models.DateField()
def __str__(self):
return self.first_name+" "+self.last_name
class pets(models.Model):
user = models.ForeignKey('User')
type = models.CharField(max_length=50)
color = models.CharField(max_length=50)
def __str__(self):
return self.type
我试图通过一个json文件使用loaddata将数据预加载到表中,该文件如下所示:
[
{
"fields": {
"first_name": "John",
"last_name": "Doe",
"middle_name": "G",
"birthday": "1900-07-21",
"password": "goforit123",
"email": "John.Doe@gmail.com"
},
"model": "account_data.user",
"pk": 1
},
{
"fields": {
"user": "????"
"type": "dog",
"color": "blue"
},
"model": "account_data.pets",
"pk": 1
}
]
对于宠物类,我应该在用户中输入什么
多谢 您只需使用要链接的对象的反pk即可:
[
{
"fields": {
"first_name": "John",
"last_name": "Doe",
"middle_name": "G",
"birthday": "1900-07-21",
"password": "goforit123",
"email": "John.Doe@gmail.com"
},
"model": "account_data.user",
"pk": 1 // This is the pk you have to use
},
{
"fields": {
"user": 1, // Use the pk, in this case you're referencing to John Doe
"type": "dog",
"color": "blue"
},
"model": "account_data.pets",
"pk": 1
}
]
假设用户已经加载,您不知道pk。有办法找到它吗?这里没有,您不在JSON文件中应用逻辑。请记住,这是加载初始/测试数据,因此,如果您有previuos用户将其添加到此JSON文件中。但是是否有方法在.py文件中编写代码以查找外键,然后使用适当的pk生成.JSON?当然,您可以创建,比如:
python manage.py查找_pks
并编写一些代码来探索数据库并在那里编写JSON文件。