Stackoverflow の皆さん、こんにちは。
Django の select_related クエリで奇妙な問題が発生しています。多数の都市の地理情報を一覧表示するdjango-cities appをインストールしました。私のプロジェクト モデルでは、都市要素への外部キーを作成して、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 は依然としてデータベースから無数の外部キーを引き出します。ロガーは、次のリクエストを無制限に表示しています。
... DEBUG (0.000) SELECT "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" , "都市の国"."大陸", "都市の国"."tld" FROM "都市の国" WHERE "都市の国"."id" = 3865483 ;
ProjectCreate クラスを実行するときに、選択関連のメソッドを強制するにはどうすればよいですか?
あなたの助けと提案をありがとう!