表題の通りです。
環境:
django=2.2
pyhton=3.8
mysql=14.14 Distrib 5.7.31
python
1●settings.py 2DATABASES = { 3 'default': { 4 "ENGINE": "django.db.backends.mysql", 5 "NAME": "db1", 6 (略) 7 }, 8 'db2': { 9 "ENGINE": "django.db.backends.mysql", 10 "NAME": "db2", 11 (略) 12 } 13}
python
1●models.py 2class Pet(models.Model): 3 name = models.CharField(max_length=45, blank=True, null=True) 4 type = models.CharField(max_length=45, blank=True, null=True)
発生している問題・エラーメッセージ
"Table 'db1.Pet' doesn't exist"
該当のソースコード
python
1●views.py 2class PetDetail(generic.DetailView): 3 template_name = 'myapp/pet_detail.html' 4 model = Pet 5 6 def get_context_data(self, **kwargs): 7 context = super().get_context_data() 8 context['pet'] = Pet.objects.using('db2').get(id = self.kwargs['pk']) 9 return context
試したこと
上記view.pyのmodel=Petをコメントアウトしてみると、
PetDetail is missing a QuerySet. Define PetDetail.model, PetDetail.queryset, or override PetDetail.get_queryset().
とエラーが出ます。
model = Pet だと'db1'を参照してしまうようなのですが、DBを指定する書き方がわかりません。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答1件
あなたの回答
tips
プレビュー