我正在學習Python。我希望根據從下拉列表中選擇多個來顯示結果。使用Django/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 %}
views.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 })
是否有可能增加一個下拉的另一個選項,或甚至多個下拉選項,並得到一個結果。還是我吠叫錯了樹?
UPDATE。
爲了通過一個或多個變量回到我的函數的代碼僅僅是以下
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()
獲得()僅允許從網頁表單傳遞的最後一個變量被讀/傳回給函數。 另一方面,.getlist()允許一個或多個變量傳回。很好,部分解決了問題。
返回的名稱列表是唯一的,因爲如果var1返回4個名稱並且var2返回8個名稱並且這兩個vars都有一個公用名稱,則返回11個名稱的列表。
我只想要返回兩個變量的通用名稱,即要返回的1個名稱。
任何想法?
我不完全清楚你的問題是什麼。究竟你在哪裏遇到問題? –
嗨丹尼爾。我希望能夠通過兩個變量(從兩個下拉列表中)從窗體和顯示結果 –