Django saving json value to database/model
Assuming a model of:
class User(models.Model):
name = models.CharField()
phone_number = models.CharField()
Sending json of {"name":"Test User", "phone_number":"123-456-7890"}
In the view you could do the following to save it to the database.
def SaveUser(request):
body_unicode = request.body.decode('utf-8')
body = json.loads(body_unicode)
u = User(**body)
u.save()
return JsonResponse({"result": "OK"})
If you're using Postgres, you can store json with JSONField
(read more), but if not, you need parse json to string and save with CharField
/TextField
using json.dumps(data)
. To recovery data, use json string to dict with json.loads(json_string)
Remember to import json lib: import json
If you want to store the intact JSON, try using the django-jsonfield project: https://github.com/dmkoch/django-jsonfield
If I understand your question clearly then Your view should be something like.
def add_comments(request):
if 'application/x-www-form-urlencoded' in request.META['CONTENT_TYPE']:
print 'hi'
data = json.loads(request.body)
comment = data.get('comment', None)
id = data.get('id', None)
title = data.get('title', None)
post = Post.objects.get(id = id)
com = Comment()
com. comments = comment
com.title = post
com.save()