我先定义两个模型,一个是问题,一个是选项,一个问题可以有多个选项。一对多的类型。
class Question(models.Model):
question_text = models.CharField(max_length=200)
pub_date = models.DateTimeField('date published')
class Meta:
db_table = 'question'
def __str__(self):
return self.question_text
class Choice(models.Model):
question = models.ForeignKey(Question)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
class Meta:
db_table = 'choice'
def __str__(self):
return self.choice_text
我们要查询某个问题下有哪些选项可以用
先查询到问题的信息
question = get_object_or_404(Question, 筛选条件)
返回一个question对象
接下来就查询question关联的所有选项对象
choice = question.choice_set.all()
django 默认每个主表的对象都有一个是外键的属性,可以通过它来查询到所有属于主表的子表的信息。
这个属性的名称默认是以子表的名称小写加上_set()来表示,默认返回的是一个querydict对象,你可以继续的根据情况来查询等操作。
如果你觉得上面的定义比较麻烦的话,你也可以在定义主表

本文介绍了在Django中处理一对多关系的查询方法。通过定义问题和选项两个模型,展示了如何查询特定问题的所有选项。Django提供了一个默认属性,如`choice_set`,用于获取主表关联的子表对象。此外,还讨论了如何自定义`related_name`进行查询,并解释了如何从子表对象反向查询主表信息。
最低0.47元/天 解锁文章
1万+

被折叠的 条评论
为什么被折叠?



