===型号===
class A(models.Model):
name= models.CharField(max_length=20, blank=False)
Class B(models.Model):
university = models.CharField(max_length=25, blank=False)
location = models.CharField(max_length=30, blank=False)
b_fk= models.ForeignKey(A)
Class C(models.Model):
studentclass = models.CharField(max_length=10, blank=False)
section = models.CharField(max_length= 10)
c_fk = models.ForeignKey(B)
class Cfurther(models.Model):
branch= Models.CharField(max_length=15, blank=Flase)
number = models.IntegerField()
cfur_fk = models.ForeignKey(C)
class Info(models.Model):
info_number = models.IntegerField()
info = models.CharField(max_length= 12, blank=Flase)
info_fk = models.ForeignKey(B, related_name= "info_set")
class Infocategory(models.Model):
find = models.CharField(max_length=15, blank=False)
cat_fk = models.ForeignKey(Info)
class Extra(models.Model):
extrainfo = models.CharField(max_length=30)
extra_fk = models.ForeignKey(Infocategory)
===查看===
Django 文档
返回一个 QuerySet,它将自动“遵循”外键关系,在执行查询时选择附加的相关对象数据。
select_related 仅限于单值关系 - 外键和一对一。
https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related
我已经编写了以下查询集来获取模型字段(所有关系都是一对多的)
myquery = Info.objects.select_related().filter(info_number__iexact = 123)
- 我想从信息模型遍历上下模型
- 我在模板中使用 select_related()获取A 类记录没有问题,但在我的情况下是否可以使用 select_related 获取所有模型字段(B 类、C、Cfurther、Infocategory、Extra)?
- 如果不是,我是否必须创建新的查询集?或者什么 select_related() 会起作用?
我对select_related字段查找有点困惑