=== 模式 ===Django的select_related和现场查找
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文档
返回一个将自动“跟随”外键012的QuerySet关系,当它执行其查询时选择该附加相关对象数据。
select_related仅限于单值关系 - 外键 和one-to-one。
https://docs.djangoproject.com/en/dev/ref/models/querysets/#select-related
我已经写了下面的查询集来获取模型场(所有的关系都是一个一对多)
myquery = Info.objects.select_related().filter(info_number__iexact = 123)
- 我想从信息模型向遍历上,下车型
- 我没有问题A级记录与模板中的select_related(),但它有可能在我的情况(B类,C,Cfurther,Infocategory,额外)获取与select_related所有模型字段?
- 如果没有,我必须创建新的查询集?或者select_related()会起什么作用?
我有点困惑关于select_related现场查找
你刚刚重复了我已经提到过的内容。我正在寻找解决方案,而不是文档! – thchand
解决方案是文档。只要你没有遵循反向外键或多对多,你可以'select_related'任何你想要的。有什么问题? –