![](/img/trans.png)
[英]How to create a dataframe from a nested JSONField in Django?
[英]How to create a django model for JSONField that takes values from other fields from the same table?
我正在用 django 编写一个模型,如下所示:
name = models.CharField(max_length=50)
address = models.CharField(max_length=100)
info = JSONField()
问题:对于 POST 请求,我将提供名称和地址作为 json。 现在我应该如何在各自的字段中存储名称和地址并存储 json 数据,即“名称:{...},地址:{...}”并将其存储到信息字段中?
这或多或少是我创建帖子请求的方式:
class MyPostView(View):
def post(self, request):
# Get request data
data = json.loads(request.body)
# Extract the values I need
name = data.get('name')
address = data.get('address')
# If the info already comes from the request do this
info = data.get('info')
# If you want to create the info field here do this
info = {'name':name, 'address': address}
# Create new model object
new_profile = Profile()
# Assign values
new_profile.name = name
new_profile.address = address
new_profile.info = info
# Save my object to database
new_profile.save()
# Return response (change this to whatever you want to return)
return HttpResponse("Success")
在这里,我使用基于类的视图,但您可以以相同的方式使用基于函数的视图。 我只是不确定您为什么要两次保存姓名和地址信息。
我希望它有帮助!
您可以覆盖 save 方法,该方法会在保存实例之前将这些字段添加到您的信息 JSONField 中。
请参阅: Django - 覆盖 Model.create() 方法?
无论如何,我建议您不要这样做,因为您正在为同一个表的列创建冗余。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.