0
def get_unanswered_questions(self, quiz,answers,correct_answers,lev):

    answered_questions = self.quiz_answers \
        .filter(answer__question__quiz=quiz) \
        .values_list('answer__question__pk', flat=True)
    answerss=list(answers)
    correct_answerss=list(correct_answers)
    list_of_ids= list(quiz.questions.values_list('id', flat=True))

    if len(answerss)==0:
          global rand_num
          rand_num=randint(0,1000)

    random.seed(rand_num)
    random.shuffle(list_of_ids)
    clauses = ' '.join(['WHEN id=%s THEN %s' % (pk, i) for i, pk in 
                 enumerate(list_of_ids)])
    ordering = 'CASE %s END' % clauses
    questions = quiz.questions.filter(pk__in=list_of_ids).exclude(pk__in=answered_questions).extra(select={'ordering': ordering }, order_by=('ordering', ))

我不知道正确的做法。我需要在len(answerss)=0时生成一个随机数,并将相同的数字传递给随机种子值,以便每次执行get_unanswered_questions时问题的顺序保持相同 我只需要在测验开始后生成随机问题并按该随机排序的顺序获取问题,直到len(answerss)==0再次达到另一个条件。

我为函数get_unanswered_questions的每次多次执行获取随机数 有什么办法吗?

4

0 回答 0