0

根拠:新しい一意の URL を使用してフォーム情報を表示し、送信時に表示しようとしています。フォームは現在データベースに保存されていますが、新しい 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)),

)

ビュー.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))

回答: if letter.is_valid() の下の try/except パラメータを削除する必要がありました

ありがとう@mattg!

4

1 に答える 1

0

try下のおよびexceptパラメータを削除する必要がありましたif letter.is_valid()

于 2013-04-18T23:46:19.410 に答える