examtest/test_server/question/models.py

47 lines
1.5 KiB
Python

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