在get_object_or_404

时间:2016-10-18 13:59:34

标签: python django

我在帖子表中有2条记录,表格中的一行有评级为空,另一条有评级为2 ,两者都有相同的user_id说5

我先实现了这个

views.py

class Rating(TemplateView):
    template_name = 'base/rating.html'
    def get(self,request,slug,*args,**kwargs):
        user_id = request.user.id
        post = get_object_or_404(Post.objects.filter(user_id=user_id,rating__isnull=True))
        return render(request,self.template_name)

urls.py

url(r'^post/addRating/(?P<slug>.+?)/$',views.Rating.as_view(),name="post_rating"),
  

因此,实际的概念是,如果评级列是,则不呈现视图   不为空

因此,评级为null的第一条记录应返回404页面,但不是,第二条记录正确显示

任何人都可以帮我解决吗?

1 个答案:

答案 0 :(得分:-1)

你需要仔细阅读django doc,上面的代码是不正确的。 要使用get_object_or_404,您必须编写类似的内容(来自django doc

from django.shortcuts import get_object_or_404
def my_view(request):
    my_object = get_object_or_404(MyModel, pk=1)

对于你的推荐,你应该写一些类似的东西:

posts = Post.objects.filter(user_id=user_id,rating__isnull=True)
post = posts and posts[0]