嗨 Stackoverflow 人,
我在 Django 中遇到了一个与 select_related 查询有关的奇怪问题。我已经安装了django-cities 应用程序,它列出了大量城市的地理信息。在我的项目模型中,我为 city 元素创建了一个外键,以将位置存储在我的models.py 中。
from cities.models import City
class Project(models.Model):
...
city = models.ForeignKey(City, blank = True, null = True)
由于可能的城市数量众多,我在基于类的视图中创建了一个查询,该查询在创建项目对象时选择相关的城市字段。
from django.views.generic.edit import CreateView, UpdateView, DeleteView
from project.models import Project
class ProjectCreate(CreateView):
queryset = Project.objects.select_related('city__country', 'city__region').all()
template_name = 'solution/solution_create_form.html'
但是,当我请求 ProjectCreate 类时,Django 仍然从数据库中提取无数外键。记录器显示无限数量的以下请求。
...调试(0.000)选择“cities_region”。“id”,“cities_region”。“name”,“cities_region”。“slug”,“cities_region”。“name_std”,“cities_region”。“code”,“cities_region” "."country_id" FROM "cities_region" WHERE "cities_region"."id" = 3861887 ; args=(3861887,) DEBUG (0.000) SELECT "cities_country"."id", "cities_country"."name", "cities_country"."slug", "cities_country"."code", "cities_country"."population" , "cities_country"."continent", "cities_country"."tld" FROM "cities_country" WHERE "cities_country"."id" = 3865483 ;
执行 ProjectCreate 类时如何强制选择相关方法?
感谢您的帮助和建议!