from django.db import models from rbac.models import CommonModel from django.contrib.postgres.fields import JSONField, ArrayField # Create your models here. class Questioncat(CommonModel): name = models.CharField(max_length=200, unique=True, verbose_name="名称") pid = models.ForeignKey("self", verbose_name="父", null=True, blank=True, on_delete=models.CASCADE, related_name="questioncatpid") is_subject = models.BooleanField(default=False, verbose_name="是否是学科") class Meta: verbose_name = "题库类别/学科类别" verbose_name_plural = verbose_name def __str__(self): return self.name @property def tmtotal(self): return self.questioncat.count() class Question(CommonModel): type_choices = ( (1, "单选"), (2, "多选"), (3, "判断"), ) level_choices = ( (1, "低"), (2, "中"), (3, "高"), ) name = models.TextField(verbose_name="题干") type = models.IntegerField(default=1, choices=type_choices, verbose_name="题型") level = models.IntegerField(default=1, choices=level_choices, verbose_name="难度") questioncat = models.ForeignKey(Questioncat, blank=True, null=True, on_delete=models.CASCADE, verbose_name="所属题库", related_name="questioncat") options = JSONField() right = JSONField() resolution = models.TextField(verbose_name="解析") class Meta: verbose_name = "题目" verbose_name_plural = verbose_name def __str__(self): return self.name