$('button.like').click(function(){
$.get($(this).parent().attr('href'),function(data){
$(this).html(''+data);
});
return false;
});
def like(request):
if request.is_ajax:
r = Restaurant.objects.get(pk=1)
r.food_likes +=1
r.save()
return HttpResponse(str(r.food_likes))
else:
return redirect(request.META.get('HTTP_REFERER'))
<a href="/like/">
<button class="like pull-right btn btn-info text-left pad0 btn-mini mrg-left5 like-food">
<i class="icon-thumbs-up"></i> `{{rest.food_likes}}`
</button>
</a>
如何使用会话更改javascript,以便即使用户重新加载页面,他也应该能够切换喜欢和不喜欢的内容,例如,如果用户喜欢某个特定的餐馆,那么特定的会话,如果他如果他想要撤消他的行动,他应该被提示不喜欢它,请帮助
答案 0 :(得分:2)
您可以轻松地在django的用户会话中存储数据,
# Returns value of is_user_like key from user's session if it's available, or False
request.session.get('is_user_like', False)
# Sets value of is_user_like in user's session to True
request.session['is_user_like'] = True
将模板更改为:
<a href="/like/">
<button class="like pull-right btn btn-info text-left pad0 btn-mini mrg-left5 like-food">
<i class="{% if user_likes %}icon-thumbs-down{% else %}icon-thumbs-up{% endif %}"></i> `{{rest.food_likes}}`
</button>
</a>
将user_likes = request.session.get('is_user_like', False)
传递给模板渲染器。
还可以将商店添加到会话行,添加到您喜欢的视图的代码中(如果您有任何内容,则不喜欢视图 -
def like(request):
if request.is_ajax:
r = Restaurant.objects.get(pk=1)
r.food_likes +=1
r.save()
request.session['is_user_like'] = True
return HttpResponse(str(r.food_likes))
else:
return redirect(request.META.get('HTTP_REFERER'))
请查看此文档以确保您已在django中启用了SessionMiddleware - 默认情况下已在生成的设置文件中启用它:https://docs.djangoproject.com/en/dev/topics/http/sessions/