Python 使用嵌套字典保存django模型的方法
我将尽可能简单地做到这一点: 我有两种型号Python 使用嵌套字典保存django模型的方法,python,django,dictionary,django-models,Python,Django,Dictionary,Django Models,我将尽可能简单地做到这一点: 我有两种型号 from django.db import models class OrderDetail(models.Model): product = models.CharField(max_length=100) price = models.CharField(max_length=50) class Order(models.Model): url = models.CharField(max_length=255, u
from django.db import models
class OrderDetail(models.Model):
product = models.CharField(max_length=100)
price = models.CharField(max_length=50)
class Order(models.Model):
url = models.CharField(max_length=255, unique=True)
loaded_info = models.BooleanField(default=False)
status = models.CharField(max_length=100, null=True)
details = models.OneToOneField(OrderDetail)
我用这样一个dict来保存:
data = {
"order": {
"url": "http://stackoverflow.com/",
"loaded_info": True,
"status": "complete",
"details": {
"product": "Fresh answer",
"price": "50 points"
}
}
}
order = Order(**data).save()
我想做一些与以下内容相近的事情:
data = {
"order": {
"url": "http://stackoverflow.com/",
"loaded_info": True,
"status": "complete",
"details": {
"product": "Fresh answer",
"price": "50 points"
}
}
}
order = Order(**data).save()
并使用一行代码保存Order
和OrderDetail
。查看
在这种情况下,您可以执行以下操作:
qs = Order.objects.select_related('details').get(pk=1)
data = serializers.serialize("json", qs)
看看
在这种情况下,您可以执行以下操作:
qs = Order.objects.select_related('details').get(pk=1)
data = serializers.serialize("json", qs)
是的,使用序列化程序生成json很适合输出数据,但我想通过将字典输入到订单模型中来将数据保存到Order和OrderDetail。好的,我明白了。那样的话。我认为当你说Order(**data).save()时,你的想法是正确的。您必须覆盖init以检查关键字参数是否有效——但表单就是这样做的。你能使用OrderForm吗?是的,使用序列化程序生成json很适合输出数据,但我想通过将字典输入到Order模型来将数据保存到Order和OrderDetail。好的,我明白了。那样的话。我认为当你说Order(**data).save()时,你的想法是正确的。您必须覆盖init以检查关键字参数是否有效——但表单就是这样做的。你能用订单吗?