2012-09-19 93 views
0

是這裏沒有辦法表單集存儲到會話?保存表單集在會話 - Django的


我的情景是這樣的。我有一個填寫用戶數據和上傳用戶證書的表單,並在下一頁(單擊下一步)中有一個表單來輸入專業詳細信息。

是否有可能限制使用表單集生成的表單的最大數量?

+0

看來你在這裏有兩個單獨的問題。請嘗試澄清問題。 – miki725

回答

1

如果我正確理解你的問題 - 如何在會話中保存from的狀態,然後從Django 1.4開始,它實際上提供了一種開箱即用的方法。

https://docs.djangoproject.com/en/dev/ref/contrib/formtools/form-wizard/

它允許一個表格分成多個部分,然後用戶能夠單獨地繼續進行。一旦用戶填寫了任何一個部分,他/她就會進入下一頁,此時表單的狀態將被保存在一個會話中。一旦所有頁面都被填充,那麼所有內容都可以保存到數據庫中。

另外,當從一個頁面到另一個頁面時,您應該在下一頁上添加邏輯。

圖像,您有一個嚮導,其中第一頁上它詢問用戶想要上傳什麼類型的內容。然後進入第二頁,然後根據第一頁的答案,可以存在適當的上傳字段 - 視頻,音樂或圖形的字段。

+0

謝謝。但formwizard是不是正確的選擇對我來說,因爲我有一個鏈接可以查看以前的形式...其實formwizard毀了我的:( –

+0

很遺憾聽到這個了一整天,然後請澄清的問題。你的問題是抽象的,它不清楚的。如果你有具體問題,問,如果你得到的異常,問。更多關於如何提出好的問題可以在StackOverflow的常見問題解答中找到在http://stackoverflow.com/faq – miki725

+0

的問題是這樣的我有一個註冊模塊有三種形式,用戶可以轉到下一個和前一個表單,所以我認爲最好是將表單數據保存到會話中。每個表單中都有兩個表單(添加證書,網址,圖像,電子郵件)等 –

0

我會回答FormWizard,但如果你不想使用它,你可以簡單地創建兩種形式。當用戶提交第一個表單時,你將它浸入一個會話中,然後生成第二個表單。當他點擊後面的鏈接時,你unPickle保存的數據,並預先填寫表格。

def submitFirstForm(request): 
    data = request.POST['data'] 
    import cPickle   
    request.session['data'] = cPickle.dumps(data) 
    ... 

def backBtn(request): 
    import cPickle 
    data = cPickle.loads(request.session['page']) 
    form = DataForm(data) 
    ... 
+0

是有可能的formset –

+0

保存到會話嗎?是爲Python對象。 – Kamagatos

+0

謝謝你,所以我可以簡單地保存POST數據到會話保存表單集吧? –