嗨,斯塔克溢出的人,
我在Django的select_related查询中遇到了一个奇怪的问题。我已经安装了django-城市应用程序,它列出了许多城市的地理信息。在我的项目模型中,我为城市元素创建了一个外来密钥,以便将位置存储在我的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,从”cities_region“中选择”cities_region“。”id“= 3861887;args=(3861887,) DEBUG (0.000)选择"cities_country“。”id“,”cities_country“。”name“,”cities_country“。”slug“,”cities_country“。”code“,”cities_country“。”cities_country“,”cities_country“,”cities_country“。”cities_country“,”tld“从”cities_country“中选择”cities_country“。”id“= 3865483;args=(3865483,)D.
在执行ProjectCreate类时如何强制选择相关方法?
感谢您的帮助和建议!
发布于 2012-08-19 20:11:23
在没有任何测试的情况下,您是否尝试过重写get_queryset方法而不是使用queryset属性?至少,在异常捕获和其他技术方面,您将更加灵活。
https://stackoverflow.com/questions/12024792
复制相似问题