47 lines
1.5 KiB
Python
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 |