2015-10-13 31 views
0

在我们的Q/A网站上,评论突然停止工作。当试图发表评论我得到follwing错误:'HttpResponse'对象没有属性'get_absolute_url'

Traceback: 
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response 
    111.       response = callback(request, *callback_args, **callback_kwargs) 
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view 
    23.     return view_func(request, *args, **kwargs) 
File "/app/src/inteokej/installed_apps/QAManager/views/threads.py" in my_post_comment 
    98.   return redirect(comment.get_absolute_url()) 

Exception Type: AttributeError at /comments/post/ 
Exception Value: 'HttpResponse' object has no attribute 'get_absolute_url' 

Read the full Traceback

下面是在视图中注释的代码:

def my_post_comment(request,next=None,using=None): 
    (model, target)=get_comment_target(request) 
    user=request.user 
    if not user.has_perm(PERM_APP+'can_comment'): 
     if model==Question and target.user==request.user: 
      if not user.has_perm(PERM_APP+"can_comment_own_question"): 
       raise Exception('You cannot comment your own question') 
     elif model==Answer and (target.user==request.user or target.question.user==request.user): 
      if not user.has_perm(PERM_APP+"can_comment_own_answer"): 
       raise Exception('You cannot comment your own answer') 
     else: 
      raise Exception('You cannot comment') 

    comment=post_comment_from_form(request, model, target, next=None,using=None) 
    #raise Exception(comment) 

    if request.is_ajax(): 
     data=simplejson.dumps({'result':render_to_string('comments/list.html',{'comment_list':[comment]},context_instance=RequestContext(request))}) 
     return HttpResponse(data,mimetype='application/json') 
    else: 
     #return render_to_response('comments/list.html',{'comment_list':[comment]},context_instance=RequestContext(request)) 
     return redirect(comment.get_absolute_url()) 

这是什么意思?由于

回答

1

的错误是在这条线:

return redirect(comment.get_absolute_url()) 

这是告诉你,评论是HttpResponse,而不是一个Comment实例。因此它没有get_absolute_url()方法。

因为评论被设置在这条线:

comment=post_comment_from_form(request, model, target, next=None,using=None) 

你需要看看你的post_comment_from_form方法。如果您要在此视图中使用该方法,则需要返回comment而不是HttpResponse