紧接上篇关于下拉框动态显示数据的功能,虽然这个功能是实现了,但是在接下来从数据库取数据和按条件查询的过程中,还是出现了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里面不应该是放汉字,而是对应的数据库数据。
到这里,下拉框动态查询算是基本完成。