Bir blog uygulaması yapıyorum ve formu işledikten sonra farklı bir farklı URL'ye yönlendirmek istiyorum, ancak aşağıda verilen görünüm çalışmaz. Ben ne HttpResponseRedirect kullanmak ne de basitçeNoReverseMatch hatası alma formunu işledikten sonra farklı bir görünüme nasıl yönlendirilir
@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)
Sadece render_to_response kullanmak Ancak o zaman çalışıyor, ama bu üstündeki url değişmez yönlendirmek kuramıyorum. İstediğim, kullanıcıyı gönderiyi yayınladıktan sonra yeni bir sayfaya yönlendirmek ve aynı zamanda üstteki URL'yi de değiştirmek istiyorum. HttpResponseRedirect kullanma
Teşekkürler çok ... aslında bu verdiğiniz belgelerin iade HttpResponseRedirect (ters ('polls.views.results', args = (p.id,))) ve bu da bir hata atar ... Teşekkürler Yardım için bir çok – Sachin
Rica ederim. Geriye dönük URL kalıpları hassas olabilir. – Brandon