I can't seem to find a good way to serialize both Django Models and Python dictionaries together, its pretty common for me to return a json response that looks like
{
"modified":updated_object,
"success":true
... some additional data...
}
Its 开发者_运维问答simple enough to use either simplejson to serialize a dict or Django's serializers.serialize to serialize a model but when I mix them together I get errors.
Is there a better way to do this?
Can't you just convert the model instance to a dict, join the other dict and then serialize?
from django.forms import model_to_dict
dict = model_to_dict(instance)
dict.update(dict2)
... Then serialize here ...
Don't know about being "better"... :-)
I'm using this (where products
is queryset):
response = {}
products_list = list(products.values('id', 'name', 'description'))
response['products'] = products_list
response['more_data'] = 'more, more, more, things'
json_data = json.dumps(response)
Using this method you can select only fields you want (make json, and database query smaller).
精彩评论