【发布时间】:2019-12-13 12:11:33
【问题描述】:
我正在尝试创建该功能,以便用户在未填写表单时返回到带有错误消息的 url。
我的网址
from django.urls import path
from content import views
urlpatterns = [
path('readerpage/<int:content_id>', views.readerpage, name='readerpage'),
path('readerpage/<int:content_id>/add_review',
views.add_review, name='add_review'),
]
我的看法
def add_review(request, content_id):
content = get_object_or_404(Content, pk=content_id)
if request.POST['readability'] and request.POST['readability_rating'] and request.POST['actionability'] and request.POST['actionability_rating'] and request.POST['general_comments']:
review = Review()
review.readability = request.POST['readability']
review.readability_rating = request.POST['readability_rating']
review.actionability = request.POST['actionability']
review.actionability_rating = request.POST['actionability_rating']
review.general_comments = request.POST['general_comments']
review.avg = (float(review.readability_rating) +
float(review.actionability_rating)) / 2
review.content = content
review.save()
return redirect('home')
else:
return HttpResponseRedirect(reverse('readerpage', args=(content_id,)))
现在用户被返回,但没有收到错误消息
我尝试过使用返回渲染,而不是 HttpResponseRedirect
return render (request, 'content/readerpage', {'error': 'You need to fill in all information'})
但这会将用户发送到错误的 url,从而产生错误,因为它会将 add_review 添加到 to URL
http://127.0.0.1:8000/content/readerpage/41/add_review
有没有办法通过 HttpResponseRedirect 传递错误? 还是有其他选择?
感谢阅读本文
【问题讨论】:
-
我建议您使用django form 免费获得验证、错误消息、实例创建等
标签: django django-views