Django 将表单中选定对象传递到另一个表单

2 投票
1 回答
3152 浏览
提问于 2025-04-18 00:29

我有两个页面,分别是步骤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))

步骤2 步骤3

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))

撰写回答