Quiz

Форк
0
/
models.py 
64 строки · 2.0 Кб
1
from django.db import models
2

3

4
class Category(models.Model):
5
    name = models.CharField(max_length=64, verbose_name='Категория')
6

7
    class Meta:
8
        ordering = ('name',)
9

10
    def __str__(self):
11
        return f'{self.name}'
12

13

14
class Type(models.Model):
15
    name = models.CharField(max_length=64, verbose_name='Тип')
16

17
    class Meta:
18
        ordering = ('name',)
19

20
    def __str__(self):
21
        return f'{self.name}'
22

23

24
class SubType(models.Model):
25
    name = models.CharField(max_length=64, verbose_name='Подтип')
26
    type = models.ForeignKey(Type, on_delete=models.CASCADE, related_name='subtypes', verbose_name='Тип')
27

28
    class Meta:
29
        ordering = ('name',)
30

31
    def __str__(self):
32
        return f'{self.name}'
33

34

35
class Answer(models.Model):
36
    answer = models.CharField(max_length=64, verbose_name='Ответ')
37
    subtype = models.ForeignKey(SubType, on_delete=models.CASCADE, verbose_name='Подтип')
38
    is_validated = models.BooleanField(default=False)
39

40
    def __str__(self):
41
        return f'{self.answer}'
42

43

44
class Question(models.Model):
45
    category = models.ForeignKey(Category, on_delete=models.CASCADE, verbose_name='Тема вопроса')
46
    question = models.CharField(max_length=128, verbose_name='Вопрос')
47
    answer = models.ForeignKey(Answer, on_delete=models.CASCADE, verbose_name='Правильный ответ')
48
    is_validated = models.BooleanField(default=False, verbose_name='Одобрен')
49
    rating = models.IntegerField(default=0, verbose_name='Очки')
50
    created_at = models.DateTimeField(auto_now_add=True, verbose_name='Дата создания')
51

52
    class Meta:
53
        ordering = ('-created_at',)
54

55
    def __str__(self):
56
        return f'{self.question}'
57

58

59
class QuestionComplaint(models.Model):
60
    question = models.ForeignKey(Question, on_delete=models.CASCADE, verbose_name='Вопрос')
61
    text = models.CharField(max_length=128, verbose_name='Жалоба')
62

63
    def __str__(self):
64
        return f'{self.text}'
65

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.