我有一个模型,Entry
与Foreign Key
,author
,User
类型:更改JSON序列外国的字符串表示主要
author = models.ForeignKey(User, default=None)
我定期使用AJAX轮询服务器,并有一个返回任何新Entry
视图响应中的对象,以JSON格式序列化。下面是代码:
def pollNewEntries(request):
if request.method == 'GET':
delta = datetime.timedelta(seconds=19)
# Determine if there are any new posts since 19 seconds before current
# time. AJAX polls server every 10 seconds. Stores ids of new posts and
# checks those against any incoming posts, ignoring duplicates.
cutOff = timezone.now() - delta
newEntries = Entry.objects.filter(pubDate__gt=cutOff)
data = serializers.serialize('json', newEntries)
return HttpResponse(data, mimetype='application/json')
这将返回完全没问题的所有数据我Entry
领域的休息,但在我的JavaScript时,我动态登录/打印/追加Entry.author
,它给了我的作者的ID字段。我检查了JS中的序列化对象,并且author
中没有其他字段可以获取。
有没有办法改变序列化数据中代表author
的部分内容?基本上,我希望我的视图返回author
字段有author.name
而不是author.id
的JSON对象。
默认情况下,它会序列化数据库表中的内容。并且在数据库中,它将它作为一个整数字段存储,该字段具有外键“author”的编号 – karthikr 2013-05-13 13:44:54
您的作者应该位于newEntries.author.name。 – 2013-05-13 13:45:04
尝试使用django-rest-framework http://django-rest-framework.org/ – EsseTi 2013-05-13 13:47:43