0
기초 : 제출시보기뿐만 아니라 새로운 고유 URL로 양식 정보를 표시하려고합니다. 양식은 현재 데이터베이스에 저장 중이지만 새 URL 또는보기로 리디렉션하지는 않습니다. 아래에서는 urls.py뿐만 아니라 views.py도 게시했습니다. 다른 것을보고 싶다면 알려주세요.Django 양식 저장, 리디렉션되지 않음
참고 : 이것은 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 경우에 따라 매개 변수를 제외하고 /를 시도를 제거하는 데 필요한()
@mattg 감사합니다!
아래
try
및except
매개 변수를 제거하는 데 필요한? – mattg@mattg 튜토리얼을 살펴 보았습니다. 이것이 올바른 방법이 아닌가? – alxmrph
그냥 무시되는 블록을 제외하고는 담요가있는 것이 꽤 이상한 것 같습니다. try/except 블록을 제거하고 문자를 저장하고 리디렉션하면 어떻게됩니까? – mattg