2013-04-18 1 views
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 감사합니다!

+0

아래 tryexcept 매개 변수를 제거하는 데 필요한? – mattg

+0

@mattg 튜토리얼을 살펴 보았습니다. 이것이 올바른 방법이 아닌가? – alxmrph

+0

그냥 무시되는 블록을 제외하고는 담요가있는 것이 꽤 이상한 것 같습니다. try/except 블록을 제거하고 문자를 저장하고 리디렉션하면 어떻게됩니까? – mattg

답변

0

는 letter.is_valid에서 블록을 제외하고 /를 시도해야합니까 왜 if letter.is_valid()