緊接上篇關於下拉框動態顯示數據的功能,雖然這個功能是實現了,但是在接下來從數據庫取數據和按條件查詢的過程中,還是出現了bug。
終於,在藉助笨方法print和alert的測試下,終於找到了原因並解決。
最主要的關鍵點就是
{% for k,v in question_type.items() %} {% if cls == v %} <option value="{{ k }}" selected>{{ v }}</option> {% else %} <option value="{{ k }}">{{ v }}</option> {% endif %} {% endfor %}question_item其實是從一個事先放好數據的字典得到的。而這個字典所放的數據
question_type = { 'QuestionDoc.ChoiceQuestionDoc': u'單選題', 'QuestionDoc.MultipleChoiceQuestionDoc': u'多選題', 'QuestionDoc.CheckingQuestionDoc': u'判斷題', 'QuestionDoc.CompletionQuestionDoc': u'填空題', 'QuestionDoc.EssayQuestionDoc': u'簡答題', 'QuestionDoc.ProblemQuestionDoc': u'材料分析題' }
此字典的鍵,正好是和數據庫裏面_cls值所相匹配的。
因此,只有下拉框的value的值爲鍵,才能在數據庫裏面找到對應的數據,而非漢字。
也正是這裏
case "QuestionDoc.ChoiceQuestionDoc":最後才反應過來,點擊下拉框動態獲取的值,case裏面不應該是放漢字,而是對應的數據庫數據。
到這裏,下拉框動態查詢算是基本完成。