我不确定我预取项目集的方法是否正确,它的嵌套反向外键获取(另一个模型对象和其他对象)。
class Created(models.Model):
created = models.DateField(default=timezone.now)
class Meta:
abstract = True
class Category(Created):
category = models.CharField(unique=True, max_length=200)
class Question(Created):
question = models.CharField(unique=True, max_length=200)
category = models.ForeignKey(
Category, on_delete=models.CASCADE, related_name="questions"
)
@property
def correct_answer(self):
return self.questions.filter(correct=True)
class Answer(Created):
name = models.CharField(max_length=200)
correct = models.BooleanField(default=False)
question = models.ForeignKey(Question, on_delete=models.CASCADE, related_name="answers")
查询:
第一个月
上面的陈述给了我3个问题,我认为这是太多了。或者也许这是好的?感谢任何反馈:)
1条答案
按热度按时间mzsu5hc01#
我稍微修改了你的代码,在category类中添加了
DateTimeField
并继承了models.Model
,我还删除了correct_answer
方法,因为如果你想获取问题或答案对象,你不能在你以前创建的类对象中定义一个函数。在这个例子中,我想展示对象已经正确定义了他的方法和字段,我当然不知道你为什么要使用
correct_answer
,但是如果你想得到一个有特定值的对象,比如correct
变量,你可以使用filter
方法得到一个QuerySet
示例。交互解释程序