2017-03-09 5 views
0

私はDjangoについて質問があります。Djangoでは、ユーザーの入力を収集する方法は?

私は2つのウェブページを持っています。第1のウェブページ内のユーザ入力データ、次いで第2のウェブページは、第1のウェブページにおけるユーザの入力によって選択された何かをユーザに提供する。

私の質問は、データが別のビュークラスで使用できるように、ビュークラスでユーザーの入力を収集する方法です。ここで

は、ユーザーの入力にそのプログラム名を聞かせすることである第一のウェブページのためのコードである:ここで

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) 

は、ユーザーがプログラムに従って、その所定のコースを選択できるように第二のWebページのコードです最初のウェブページに入力した名前:

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) 

実際には、ユーザーからの入力を保存するために辞書引数を使用します。しかし、それは動作しません。

ありがとうございます!

+0

私の答えがあなたの意見を受け入れる手助けだったら、どうぞ。 StackOverflowの良い練習です! –

答えて

2

[更新]:あなたのアプリケーションの状態を維持するために、あなたが欠けているのはmodelsのコンセプトです。 Django tutorialを完了しましたか?完了したら、あなた自身であなたの質問に答えることができます!

一般的な考え方は次のとおりです。最初のWebページからユーザーからデータを取得し、検証し、データベースに保管します(別名model)。 2番目のWebページでは、モデル(データベース)から同じデータ(いくつかのパラメータに基づいて)を取得し、必要に応じてそれらを処理します。あなたがそれを理解することを願って!

フォームからユーザーの入力を収集します。各フォーム提出には独自の提出方法があります(GET,など)。私は形式で行くことができますが、ここのことはそうではありません。

フォームに慣れるためにthisをよく読んでください。

また、気になる方は、コードのスニペットを共有して、ここの人々があなたを助けることができるようにしてください。

+0

ありがとう!私は自分のコードを掲載しました。 –

+0

あなたのアドバイスありがとう! –

関連する問題