我正在学习 Python。我想根据下拉列表中的多项选择显示结果。
以下代码正在运行并为一个下拉菜单返回正确的结果。我想添加至少一个下拉列表,希望是多个,但我无法理解如何实现传递和返回多个变量。
表格代码
<p> <form method="get" action="">
<select name="search3">
{% for cs in course_list %}
<option value="{{ cs.pk }}">{{ cs.name }}</option>
{% endfor %}
</select>
<br/><br/>
<input type=submit value="Find staff" />
</form>
</p>
{% if employee_list %}
{{ employee_list.count }} employees matching : <strong>{{ course }}</strong><br/><br/>
{% for e in employee_list %}
{% if not e.img1 %}
<img src="/media/images/null_image.png" width="35" title="{{ e.first_name}} {{e.surname }}" />
{% else %}
<img src="{{ e.img1.url }}" width="50" title="{{ e.first_name}} {{e.surname }}"/>
{% endif %}
<a href="/employee/{{ e.slug }}" target="_blank" rel="popup" title="Details...<br />
{% for det in employee_list.employeedynamic_set.all %}
{{ det.mobile }}<br />
{{ det.depot }}<br />
{% endfor %}
"> {{ e.first_name }} {{ e.surname }}</a><br/>
{% endfor %}
{% else %}
<p>No employees matched: <strong>{{ course }}</strong></p>
{% endif %}
view.py 代码
# function to list training courses and participating uindividuals.
def CourseView(request):
course_list = Course.objects.all().order_by('name')
if 'search3' in request.GET:
search3 = request.GET['search3']
course = Course.objects.get(pk=search3)
else:
search3 = None
course = None
return render_to_response("course_display.html", {'course':course, 'course_list': course_list, 'search3': search3 })
是否可以添加另一个下拉选项甚至多个下拉选项并获得结果。还是我在叫错树?
更新。
为了将一个或多个变量传递回我的函数,代码如下
def CompetencyCheck(request):
course_list = Course.objects.all()
if 'search3' in request.GET:
search3 = request.GET.getlist('search3')
course = Course.objects.filter(id__in=search3).distinct().order_by()
.get()只允许从网页表单传递的最后一个变量被读取/传递回函数。另一方面,.getlist()允许一个或多个 vars 被传回。太好了,部分问题解决了。
返回的名称列表是唯一的,因为如果 var1 返回 4 个名称,var2 返回 8 个名称,并且两个 var 都有一个通用名称,则返回 11 个名称的列表。
我只希望返回两个变量的通用名称,即返回1 个名称。
有任何想法吗?