2012-04-07 33 views
0

第一篇文章,所以請原諒 - 我試圖創建一個多頁產品註冊表單。我可以獲取要顯示的表單和提交按鈕,但是我找不到我的urls.py文件的任何URL模式示例。我發現了另一個類似的問題,提出如下建議:我應該爲多頁註冊表單使用哪些URL模式(使用Django)?

「你需要編寫一個視圖來處理你的請求(做到了)你需要編輯urls.py來將你的測驗URL映射到views.py中的函數很努力,但沒有),所以當與測驗URL請求到來的Django應用這一觀點功能。

當我將用戶重定向到新的URL的問題。我似乎無法找到什麼樣的一個例子接下來的模式應該是這裏是我的urls.py代碼(index.html,然後details.html是我的模板至今):

url(r'^signup/$', 'signup.views.select_product', name='select_product'), 
url(r'^signup/(?P<product_id>\d+)/$', 'signup.views.subscriber_signup', name='subscriber_signup'), 
    #... 

這裏是我的視圖代碼:

def select_product(request): 
    title = "get yourself an e-edition. wurd." 
    pform = ProductForm(request.POST) 
    if request.method == 'POST': # If the form has been submitted... 
     pform = ProductForm(request.POST) # A form bound to the POST data 
     if pform.is_valid(): # All validation rules pass 
     # Process the data in form.cleaned_data 
     # ... 
      return HttpResponseRedirect('signup/index.html') # Redirect after POST 
    else: 
     form = ProductForm() # An unbound form 
    return render_to_response('signup/index.html', {'title': title, 'pform': pform}, context_instance=RequestContext(request)) 

def subscriber_signup(request, product_id): 
    signup = Product.objects.get(id=product_id) 
    title = "get yourself an e-edition. wurd." 
    sform = SubscriberForm(request.POST) 
    if request.method == 'POST': # If the form has been submitted... 
     sform = SubscriberForm(request.POST) # A form bound to the POST data 
     if sform.is_valid(): # All validation rules pass 
     # Process the data in form.cleaned_data 
     # ... 
      return HttpResponseRedirect('signup/detail.html') # Redirect after POST 
    else: 
     sform = SubscriberForm() # An unbound form 
    return render_to_response('signup/detail.html', {'title': title, 'sform': sform, 'signup': signup,}, context_instance=RequestContext(request)) 
+0

'signup'是您的Django應用程序的名稱? – Jay 2012-04-07 22:17:31

+0

是否在返回HttpResponseRedirect('signup/index.html')'URL路徑或模板文件的名稱內'signup/index.html'?如果是URL路徑,請確保它與root相關,就像'/signup/index.html'一樣。更好的是,使用像reverse('signup_index')和,在urls.py'url(r'^ signup/$','signup.views.index',name ='sign_index')' – okm 2012-04-08 11:08:34

+0

註冊是應用程序index.html是註冊表單第一頁的模板名稱。在我的URLS.py中,我有你的例子,但它是signup.views.select_product和name ='select product'現在我的問題是下一個URL模式應該是什麼? – 2012-04-10 15:59:50

回答

0

所以問題的一部分是我在SubscriberForm所基於的Subscriber類中使用(User)模型。我放棄了這一點,並根據普通的類製作了一個表單,並單獨定義了對象。

下面是最終工作的URL模式。

url(r'^signup/$', 'signup.views.select_product', name='select_product'), 
url(r'^signup/(?P<product_id>\d+)/$', 'signup.views.subscriber_signup', name='subscriber_signup'), 
url(r'^signup/(?P<product_id>\d+)/thankyou/$', 'signup.views.thankyou', name='thankyou'), 

感謝您的回覆。

安東尼

相關問題