【发布时间】:2012-02-11 13:52:46
【问题描述】:
目前我有一个视图,我将其渲染到模板并返回两个查询列表。我的看法如下图
def view_notifications(request,user_id):
context_instance=RequestContext(request)
user = User.objects.get(pk=user_id)
user.profile.notifications = 0
user.profile.save()
notices = list(notifications.objects.filter(n_reciever=user.id, is_read=0).order_by('-time'))
number = notifications.objects.filter(n_reciever=user.id, is_read=0).order_by('-time').count()
if number < 5:
old_notices = list(notifications.objects.filter(n_reciever=user.id, is_read=1).order_by('-time')[:5])
else:
old_notices = False
notifications.objects.all().update(is_read = 1)
return render_to_response('profiles/notifications.html', {'New_Notice': notices, 'Old_Notices':old_notices, 'number': number,},context_instance=RequestContext(request))
在我的模板中,我遍历了两个列表,并为新的列表对象赋予了背景色
<ul id="notification_list">
<li id="first"></li>
{% for notice in New_Notice %}
<li class="new"> <a href="{{notice.n_sender.profile.get_absolute_url}}">{{ notice.n_sender.profile.url_name}} </a> {{notice.message}} your <a href="{{notice.object_url}}"> {{notice.object_type}}</a></li>
{% endfor %}
{% for notice in Old_Notices %}
<li> <a href="{{notice.n_sender.profile.get_absolute_url}}">{{ notice.n_sender.profile.url_name}} </a> {{notice.message}} your <a href="{{notice.object_url}}"> {{notice.object_type}}<a/></li>
{% endfor %}
</ul>
现在我想通过AJAX 调用来做同样的事情,并将这些对象显示在下拉列表而不是新页面中,这样用户就可以在那里查看通知本身而无需导航。我无法理解如何发送两个 JSON 编码的object_lists。我知道如何将对象列表序列化为 JSON
data = serializers.serialize('json', notifications.objects.all())
但是我可以这样发送两个 object_lists 吗?我也不知道如何在 html 中显示这个 JSON 编码的对象列表。我可以像访问模板中的对象一样访问它吗?
请帮忙
【问题讨论】: