我对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 :(得分:2)
[更新] :您缺少的是models
的概念,以便保留您应用的状态。你完成了Django tutorial吗?完成后,您可以自己回答问题!
概念通常是:您从第一个网页获取用户数据,验证它们,将它们存储在数据库中(又名model
)。在第二个网页中,您从模型(数据库)中检索相同的数据(根据某些参数),然后根据需要处理它们。希望你理解!
您通过表单收集用户的输入。每个表单提交都有自己的提交方法(GET
,POST
等)。我可以继续使用表格,但这不是这里的事情。
最好阅读this以熟悉表单。
另外,如果你介意的话,你可以分享一段你的代码,这样的人可以帮助你!