1234567891011121314151617181920212223242526272829303132333435 |
- # coding=utf-8
- from django.db.models import F
- from django.db import models
- from django.utils import timezone
- from django.conf import settings
- from apps.examination.exam.models import ExamAnswerLog
- from apps.examination.examquestion.models import ExamQuestion
- class ErrorBook(models.Model):
- question = models.ForeignKey(ExamQuestion, verbose_name=u"试题", on_delete=models.PROTECT)
- create_user = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name=u'答题人', editable=False, on_delete=models.PROTECT)
- last_answer_log = models.ForeignKey(ExamAnswerLog, verbose_name=u"最后答题记录", on_delete=models.PROTECT)
- last_time = models.DateTimeField(verbose_name=u"最后出错时间", default=timezone.now)
- wrong_count = models.IntegerField(verbose_name=u'出错次数', default=0, editable=False)
- class Meta:
- db_table = "practise_error_book"
- ordering = ['-id']
- verbose_name = u"错题集"
- default_permissions = ()
- @staticmethod
- def add_error(question, user, answer_log):
- '''
- :param question: 试题对象
- :param user: 用户对象
- :param answer_log: 答题记录对象
- :return:
- '''
- instance = ErrorBook.objects.filter(question=question, create_user=user)
- if instance:
- instance.update(last_answer_log=answer_log, wrong_count=F('wrong_count')+1, last_time=timezone.now())
- else:
- ErrorBook.objects.create(question=question, create_user=user, last_answer_log=answer_log, wrong_count=1)
|