2017-03-09 19 views
0

我有一個關於Django的問題。在Django中,如何收集用戶的輸入?

我有兩個網頁。用戶在第一網頁上輸入數據,然後第二網頁向用戶提供用戶在第一網頁上輸入的內容。

我的問題是如何收集用戶在視圖類中的輸入,以便數據可以被其他視圖類使用。

這是第一個網頁的代碼是讓用戶輸入他們的節目名稱:

args = {} 
class Program(forms.Form): 
    program_text = forms.CharField(label="Your Program", help_text="e.g. History", required = True) 


def Choose_Program(request): 
    form = Program(request.GET) 
    if form.is_valid(): 
     args["program"] = form.cleaned_data.get("program_text") 
    context = {"form":form} 
return render(request, "program.html", context) 

這裏是第二個網頁的代碼這是爲了讓用戶根據程序選擇自己規定的課程名稱他們在第一個網頁輸入:

PRE_COURSES = find_prescribed(args["major_program"]) 

class PrescribedCourses(forms.Form): 
    pre_courses = forms.MultipleChoiceField(label = "Prescribed Courses" 
             choices = PRE_COURSES, 
             widget = forms.CheckBoxSelectMultiple, 
             required = True) 
def choose_pre_courses(request): 
    form = PrescribedCourses(request) 
    if form.is_valid(): 
     args["courses_taken"] = form.cleaned_data.get("pre_courses") 
    context = {"form": form} 
    return render(request, "Choose_Pre_Courses.html", context) 

所以實際上我想使用字典args來存儲來自用戶的輸入。但它不能工作。

謝謝!

+0

如果我的回答幫助你接受它,請。這是一個在StackOverflow中的好習慣! –

回答

2

[UPDATE]:你缺少的是models的概念,以保持你的應用程序的狀態。你完成了Django tutorial?一旦你完成了,你可以自己回答你的問題!

一般的概念是這樣的:您從第一個網頁的用戶獲取數據,您驗證它們,將它們存儲在數據庫中(也稱爲model)。在第二個網頁中,您可以從模型(數據庫)中檢索相同的數據(根據某些參數),然後根據需要處理它們。希望你明白!

您通過表單收集用戶的輸入。每個表格提交都有自己的提交方法(GET,POST等)。我可以繼續使用表格,但這不是這裏的事情。

更好的閱讀this爲了熟悉形式。

此外,如果你介意,你能分享一段你的代碼,所以這裏的人可以幫助你!

+0

謝謝!我發佈了我的代碼。 –

+0

感謝您的諮詢! –

相關問題