Obiekt formularza nie ma atrybutu "has_header"


Jestem nowy w Django. Mam aplikację do wiadomości z widokiem, który wyświetla stronę dla każdej wiadomości:
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})

I stworzyłem aplikację do komentarzy:
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',)

Spróbuję wdrożyć funkcję komentarzy
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

Ale mam błąd obiektu "Dodatek" nie ma atrybutu "Has_header". Myślę, że to dlatego, że nie ma httpresponse w widoku Add_Comment. Jak należy przepisać kod do pracy?
Debugowanie wiadomości o błędach
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'

Podziękować!
Zaproszony:
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Od widoku musisz zwrócić obiekt
, ale zwracasz obiekt formularza. Stąd błąd. 
Zamiast tego możesz użyć
render
https://docs.djangoproject.com ... ender
Zmiana
return form

do
return render(request, template_name, {'form': form})
Anonimowy użytkownik

Anonimowy użytkownik

Potwierdzenie od:

Prawa Karthikr.
Możesz także użyć
return render_to_response('template_name',{'form':form})

Aby odpowiedzieć na pytania, Zaloguj się lub Zarejestruj się