models.py 2.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. from django.db import models
  2. # Create your models here.
  3. class Question(models.Model):
  4. ID = models.AutoField(primary_key=True)
  5. q = models.CharField(max_length=128)
  6. a1 = models.CharField(max_length=128)
  7. a2 = models.CharField(max_length=128)
  8. a3 = models.CharField(max_length=128)
  9. a4 = models.CharField(max_length=128)
  10. answer = models.IntegerField()
  11. @staticmethod
  12. def get_random_question():
  13. return Question.objects.order_by('?')[:1]
  14. def search_id(self):
  15. return Question.objects.filter(ID=self.ID)
  16. class AnswerRecord(models.Model):
  17. user = models.CharField(max_length=128)
  18. mobile = models.IntegerField()
  19. department = models.CharField(max_length=128)
  20. question = models.CharField(max_length=128)
  21. result = models.CharField(max_length=8)
  22. your_answer = models.CharField(max_length=128)
  23. correct_answer = models.CharField(max_length=128, null=True)
  24. def add_record(self):
  25. AnswerRecord.objects.create(user=self.user, mobile=self.mobile, department=self.department,
  26. question=self.question, result=self.result,
  27. your_answer=self.your_answer, correct_answer=self.correct_answer)
  28. def get_record(self):
  29. return AnswerRecord.objects.filter(user=self.user, mobile=self.mobile)
  30. class Scores(models.Model):
  31. user = models.CharField(max_length=128)
  32. mobile = models.IntegerField()
  33. department = models.CharField(max_length=128)
  34. score = models.FloatField()
  35. start_time = models.DateTimeField(auto_now=True)
  36. total_time = models.IntegerField()
  37. address = models.CharField(max_length=255)
  38. def add_score(self):
  39. Scores.objects.create(user=self.user, mobile=self.mobile, department=self.department, score=self.score,
  40. total_time=self.total_time, address=self.address)
  41. @staticmethod
  42. def find_score(mobile_number):
  43. result = Scores.objects.filter(mobile=mobile_number)
  44. if len(result) == 0:
  45. return False
  46. else:
  47. return True
  48. @staticmethod
  49. def get_score_list():
  50. return Scores.objects.all().order_by('total_time').order_by('-score')[0:10]