我正在尝试使用Department-> subject-> Question Relations构建一个选择题应用程序,但是我对如何获得与给定主题相关的问题感到困惑,就像我发布的图像一样。
from django.db import models
from smart_selects.db_fields import ChainedForeignKey
from django.template.defaultfilters import truncatewords_html
class Exam(models.Model):
exam_name = models.CharField(max_length=20)
def __str__(self):
return self.exam_name
class Year(models.Model):
year = models.CharField(max_length=4, blank=True)
class Meta:
ordering = ("year",)
def __str__(self):
return self.year
class Department(models.Model):
department=models.CharField(max_length=100, blank=True, verbose_name=("department"))
def __str__(self):
return self.department
class Subject(models.Model):
department = models.ForeignKey(Department, on_delete=models.CASCADE)
subject = models.CharField(max_length=36)
def __str__(self):
return self.subject
class Question(models.Model):
exam_name = models.ForeignKey(
Exam,
on_delete=models.CASCADE
)
year = models.ForeignKey(
Year,
blank=True,
on_delete=models.CASCADE
)
department = models.ForeignKey(
Department,
blank= True,
on_delete=models.CASCADE
)
subject = ChainedForeignKey(
Subject,
chained_field="department",
chained_model_field="department",
auto_choose = True,
related_name='question',
on_delete=models.CASCADE
)
question = models.TextField(blank=False)
def __str__(self):
return '{} >>> {}'.format(self.question, self.subject.subject)
class Answer(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
content = models.CharField(max_length=500)
answer = models.BooleanField(blank=False, default=False)`
上面的图像是我希望问题区域类似的内容,用户可以导航主题的每个选项卡并回答问题,或者根据分页中的数字选择问题。