私は3つのモデルを持っており、第1モデルの第3モデルからすべての関連オブジェクトのセットを取得したいと思います。多対1リレーションシップのオブジェクトのセットを2レベル深く取得する
Clas Dealer(models.Model):
..
class Make(models.Model):
dealer = models.ForeignKey(Dealer)
..
Class Modell(models.Model):
Make = models.ForeignKey(Make)
..
がどのように私は編集 私ができるディーラーオブジェクトがkwargs['instance']
の形で渡さなっているDealer?
与え関連Modell
すべてのオブジェクトを取得する方法について行くだろう:例えば
使用しないでください.objects.filter(..)
編集2
from django.apps import AppConfig
from django.db import models
class CarConfig(AppConfig):
name = 'cars'
verbose_name = 'cars'
def ready(self):
from cars.models import Car, Make, Modell
models.signals.post_save.connect(CarConfig.reindex_related_carmodels, sender=Dealer, weak=False,
dispatch_uid="reindex_related_carmodels")
@staticmethod
def reindex_related_carmodels(sender, **kwargs):
from cars.search_indexes import ModelIndex
models = Modell.objects.all()
...
私は取得していますエラーは次のとおりです。global name 'Modell' is not defined
編集3 私は準備ができて外のモデルのいずれかをインポートしようとすると、私が手:
File "/usr/local/lib/python2.7/dist-packages/django/apps/registry.py", line 124, in check_apps_ready
web_1 | raise AppRegistryNotReady("Apps aren't loaded yet.")
web_1 | django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
編集4 @staticmethodの内部でモデルのインポートを行う方法があります:)
*なぜあなたはフィルタを使用できないと思われますか?それがデータベースから物事を得る方法です。あなたは代わりに何を使うつもりですか? –
私はapps.pyのpythonファイルの信号を更新しています。 'django.apps import AppConfig'からです。したがって、私は.filterを使用できないと確信しています。私ができるなら、私はそれをどうやってやるのか分かりません。 –
まあ、それは何と関係がありますか?なぜあなたはフィルタを使用できないのですか? –