FormView的Django CSRF令牌缺失或不正确

FormView的Django CSRF令牌缺失或不正确,django,django-generic-views,django-csrf,Django,Django Generic Views,Django Csrf,我是Django的新手,下面将向模块添加一个Like按钮。我有这样的看法: class VoteFormView(FormView): form_class = VoteForm def form_valid(self, form): pic = get_object_or_404(UserPic, pk=form.data["pic"]) user = self.request.user prev_votes = Vote.

我是Django的新手,下面将向模块添加一个Like按钮。我有这样的看法:

class VoteFormView(FormView):
    form_class = VoteForm

    def form_valid(self, form):


        pic = get_object_or_404(UserPic, pk=form.data["pic"])
        user = self.request.user
        prev_votes = Vote.objects.filter(voter=user, pic=pic)
        has_voted = (prev_votes.count() > 0)



        if not has_voted:
            # add vote
            Vote.objects.create(voter=user, pic=pic)
            print("voted")
        else:
            # delete vote
            prev_votes[0].delete()
            print("unvoted")

        return render_to_response('userpics/photo.html',
                                      {'pic':pic})

    def form_invalid(self, form):
        print("invalid")
        return render_to_response('userpics/photo.html',
                                      {'pic':pic})
在photo.html中,我有:

{% if pic %}

<form method="post" action="/photo/vote/" class="vote_form">
    <li> [{{ pic.votes }}]
   {% csrf_token %}
  <input type="hidden" id="id_pic" name="pic" class="hidden_id" value="{{ pic.pk }}" />
  <input type="hidden" id="id_voter" name="voter" class="hidden_id" value="{{ user.pk }}" />
  <button>Like</button>

</form>

 <img class="pic" src="/static/assets/{{pic}}" />


{% endif %}
我试过:

return render_to_response('userpics/photo.html',
                              {'pic':pic,},
                              context_instance=RequestContext(request))

但由于此视图没有“request”对象,上述语句也会导致错误。因此,我不知道如何实现此视图的csrf,并感谢您的帮助。

可以使用
self.request
访问请求,因此请尝试:

return render_to_response('userpics/photo.html',
                          {'pic':pic,},
                          context_instance=RequestContext(self.request))
return render_to_response('userpics/photo.html',
                          {'pic':pic,},
                          context_instance=RequestContext(self.request))