from django.db import models
# Create your models here.
class Question_Simple(models.Model):
ANSWER=(
('A','A'),
('B','B'),
('C','C'),
('D','D'),
)
CHAPTER={
('A','第一章节'),
('B','第二章节'),
('C','第三章节'),
('D','第四章节'),
('E','第五章节'),
('F','第六章节'),
('G','第七章节'),
('H','第八章节'),
('I','第九章节'),
('J','第十章节'),
}
id = models.AutoField(primary_key=True)
chapter=models.CharField('章节',max_length=10,choices=CHAPTER)
title=models.TextField('题目')
optionA=models.CharField('A选项',max_length=30)
optionB=models.CharField('B选项',max_length=30)
optionC=models.CharField('C选项',max_length=30)
optionD=models.CharField('D选项',max_length=30)
answer=models.CharField('答案',max_length=10,choices=ANSWER)
class Meta:
db_table='question'
verbose_name='单项选择题库'
verbose_name_plural=verbose_name
def __str__(self):
return '<%s:%s>'%(self.chapter,self.title);
CHAPTER改成数组,要不set是无序的,得不到题主要的1~10效果。要么在客户端用js排序下更新select的option内容
示例代码如下
<select id="CHAPTER">
<option>第十章</option>
<option>第三章</option>
<option>第六章</option>
<option>第七章</option>
</select>
<script>
//内容数字对应
var kv = { '第一章': 1, '第二章': 2, '第三章': 3, '第四章': 4, '第五章': 5, '第六章': 6, '第七章': 7, '第八章': 8, '第九章': 9, '第十章': 10}
var s = document.getElementById('CHAPTER'), opts = Array.from(s.options);
opts.sort(function (a, b) {
return kv[a.text]-kv[b.text]
});
for (var opt of opts) s.appendChild(opt)
</script>
1.可以试试将 CHAPTER 改成元组嵌套再 翻转
2.将A,B,C.....对应的章节倒序对应
排序方法有两个。
sort()
用法:list.sort()。直接对list操作排序。
sorted()
用法:sorted(list)。有返回值,返回排序后的列表