Django表单保存,但不重定向

时间:2013-04-18 20:25:55

标签: django forms redirect response.redirect django-forms

基础:我正在尝试使用新的唯一网址显示表单信息,以及在提交时查看。表单当前正在保存到数据库,但不会重定向到新的URL或视图。下面我发布了views.py以及urls.py.如果您需要查看其他内容,请告诉我们。

注意:这是基于ModelForm,我有点像Django的初学者。

提前致谢!

url.py

from django.conf.urls import patterns, include, url

# Uncomment the next two lines to enable the admin:
from django.contrib import admin
admin.autodiscover()

urlpatterns = patterns('',
url(r'^letter/testing/$', 'letter.views.letter'),
url(r'^letter/testing/(?P<pk>\d+)/$','letter.views.submission'),

# Uncomment the admin/doc line below to enable admin documentation:
url(r'^admin/doc/', include('django.contrib.admindocs.urls')),

# Uncomment the next line to enable the admin:
url(r'^admin/', include(admin.site.urls)),

views.py

# Create your views here.
from django.http import HttpResponseRedirect
from django.shortcuts import render_to_response, get_object_or_404
from django.template import RequestContext
from letter.forms import LetterForm
from letter.models import Letter

def submission(request, pk):
    submission = get_object_or_404(Letter, pk=int(pk))
    return render_to_response('post.html', {'submission':submission})

def letter(request):
if request.method == "POST":
    letter = LetterForm(request.POST)

    if letter.is_valid():
        try: 
            new_letter = letter.save()
            return HttpResponseRedirect('/letter/testing/%d/' % new_letter.pk)
        except:
            pass        

else:
    letter = LetterForm()

return render_to_response('letter.html',
        {'letter':letter},
        context_instance=RequestContext(request))

解答: 如果letter.is_valid()

,则需要删除try / except参数

谢谢@mattg!

1 个答案:

答案 0 :(得分:0)

需要移除try

下的exceptif letter.is_valid()参数