Django 将表单中选定对象传递到另一个表单
我有两个页面,分别是步骤2和步骤3。我想做的是把步骤2表单中选中的对象传递到步骤3表单,这样我就可以过滤步骤3表单中的对象。你可以在下面的图片中看到这两个页面/表单。所以,当用户在步骤2中选择了一所大学后,步骤3就应该只显示该大学的课程。
我现在的代码非常简单,因为我这几天一直在删除和重写代码,但还是没有结果。
views.py
def step2(request):
universities = University.objects.order_by('name').distinct()
return render_to_response("registration/step2.html", {'universities': universities}, RequestContext(request))
def step3(request):
courses = Course.objects.order_by('name')
return render_to_response("registration/step3.html", {'courses': courses}, RequestContext(request))
1 个回答
3
在你的视图中,你需要获取用户所选择的内容,然后用这个选择来过滤下一个表单中的选项。可以这样理解:
form = FirstForm(request.POST)
if form.is_valid():
uni = form.cleaned_data['uni']
courses = Course.objects.filter(university__name=uni).order_by('name')
return render_to_response("registration/step3.html", {'courses': courses}, RequestContext(request))