Tôi đang tạo ứng dụng blog và tôi muốn chuyển hướng đến một url khác sau khi tôi đã xử lý biểu mẫu, tuy nhiên chế độ xem được cung cấp dưới đây không hoạt động. Tôi không thể sử dụng không HttpResponseRedirect cũng không chỉ đơn giản là chuyển hướngCách chuyển hướng đến một chế độ xem khác sau khi xử lý biểu mẫu nhận lỗi NoReverseMatch
@login_required
def blog_form(request,author_id=None,slug=None):
context_instance=RequestContext(request)
# This view will have a valid creator_id and slug field if the
# blog is being edited and in this case the creator and user should be same
if (author_id and slug):
author = User.objects.get(pk=author_id)
blog = get_object_or_404(Entry, creator = author, slug = slug)
if blog.creator != request.user:
raise HttpResponseForbidden()
# We set the user and created date and make a new object
else:
blog = Entry(creator=request.user,created_date=datetime.datetime.now())
if request.method == 'POST':
#if the blog is not published
if 'save' in request.POST:
form = EntryForm(request.POST, instance = blog)
if form.is_valid():
form.save()
elif 'publish' in request.POST:
blog.pub_date = datetime.datetime.now()
blog.status = 1
form = EntryForm(request.POST, instance = blog)
if form.is_valid():
form.save()
#return HttpResponseRedirect ('view_blog',(),{'author_id':blog.creator.id,'slug' :blog.slug,})
return redirect ('blogs', blog.creator.id, blog.slug)
#return render_to_response('blog/blog_view.html', {'blog': blog,},context_instance=RequestContext(request))
elif 'preview' in request.POST:
form = EntryForm(request.POST, instance = blog)
if form.is_valid():
form.save()
return render_to_response('blog/blog_view.html', {'blog': blog,},context_instance=RequestContext(request))
else:
form = EntryForm(instance = blog)
return render_to_response('blog/blog.html', {'form':form}, context_instance)
Tuy nhiên nếu tôi chỉ sử dụng render_to_response sau đó nó hoạt động tốt, nhưng điều đó không thay đổi url ở đầu trang. Những gì tôi muốn là chuyển hướng người dùng đến một trang mới sau khi xuất bản bài đăng và tôi cũng muốn thay đổi url ở trên cùng.
Cảm ơn rất nhiều .. thực sự họ đã đưa ra điều này là trong tài liệu trả về HttpResponseRedirect (đảo ngược ('polls.views.results', args = (p.id,))) và điều này cũng ném lên một lỗi ... Cảm ơn rất nhiều cho sự giúp đỡ – Sachin
Bạn đang chào đón. Việc đảo ngược các mẫu URL có thể khó hiểu. – Brandon