比较来自世界各地的卖家的域名和 IT 服务价格

对象表单没有属性 'has_header'

我是新的b。 django. 我有一个新闻应用程序,一个显示每个新闻的页面的视图:


def news_page/request, news_id/:
news = News.objects.get/pk=news_id/
tags = news.tags.all//
category = news.category
comments = news.comment_set.all//
form = add_comment/request, news.id/
return render/request, 'news/news_page.html', {'form': form, 'news': news, 'tags': tags, 'category': category, 'user': request.user, 'comments': comments}/


我创建了一个评论的应用程序:
models.py:


class Comment/models.Model/:
author = models.ForeignKey/User/
comment_body = models.CharField/max_length=500/
news = models.ForeignKey/News/
pub_date = models.DateTineField/default = datetime.datetime.now///


forms.py:


class AddCommentForm/ModelForm/:
comment_body = forms.CharField/widget=forms.Textarea/

class Meta//:
model = Comment
exclude = /'author', 'news','pub_date',/


我会尝试实现一个函数 comments.view add_comment, 哪种用途 news_page view /更高/ :


def add_comment/request, news_id/:
news = News.objects.get/pk=news_id/
if request.method == 'POST':
form = AddCommentForm/request.POST/
if form.is_valid:
comment = form.save/commit=False/
comment.author = request.user
comment.news = news
comment.save//
else:
form = AddCommentForm//
return form


但我有一个错误 'AddCommentForm' 对象没有属性 'has_header' . 我认为这是因为在演示中 add_comment 不是 HttpResponse. 我该如何重写代码来工作?
调试关于错误的消息


Internal Server Error: /news/15/comment/
Traceback /most recent call last/:
File "C:\Python27\myproject\djcode\first_venv\venv\lib\site-packages\django\core\handlers\base.py"
, line 187, in get_response
response = middleware_method/request, response/
File "C:\Python27\myproject\djcode\first_venv\venv\lib\site-packages\django\contrib\sessions\middl
eware.py", line 26, in process_response
patch_vary_headers/response, /'Cookie',//
File "C:\Python27\myproject\djcode\first_venv\venv\lib\site-packages\django\utils\cache.py", line
142, in patch_vary_headers
if response.has_header/'Vary'/:
AttributeError: 'AddCommentForm' object has no attribute 'has_header'


谢!
已邀请:

喜特乐

赞同来自:

从演示文稿中,您需要返回对象
response

, 但你返回物体 form. 因此错误。

相反,你可以使用
https://docs.djangoproject.com ... ender
改变


return form





return render/request, template_name, {'form': form}/

裸奔

赞同来自:

迦太基牛权

你也可以使用


return render_to_response/'template_name',{'form':form}/

要回复问题请先登录注册