私の超過タイトルをお詫び申し上げます。Djangoモデルで一度DBにヒットして複数のテーブルの属性をnon-pk-columnで選択する方法はありませんか?
class Menu(models.Model):
menu_code = models.IntegerField(blank=False, null=False) # It expresses order of menu items so it often can be changed.
menu_title = models.CharField(max_length=20, blank=False, null=False)
submenu_title = models.CharField(max_length=20, blank=True, null=True)
class Board(models.Model):
title = models.CharField(max_length=200, blank=False, null=False)
date = models.DateTimeField(default=timezone.now)
menu = models.ForeignKey(Menu)
上記は私のmodels.pyの一部です。
私がしたいことは、SQLでは以下のようになります。
SELECT
*
FROM
Board B, Menu M
WHERE
B.menu_id=M.menu_id and
M.menu_title='cat';
または
SELECT
*
FROM
Board B INNER JOIN Menu M
ON
B.menu_id=M.menu_id and
M.menu_title='cat';
私はそれについて多くの質問と回答を見てきましたし、彼らは「select_related」を使用することになったが、鉱山は彼らの問題で若干の違いがあります。
- 'menu_title'はメニューテーブルのPKではないため、ボードテーブルのフィルタメソッドはその属性を見つけることができません。
解決策はありますか?それともモデルデザインを変更する必要がありますか?
ありがとう、それは動作します。 ダブルアンダースコアの使い方が混乱していたと思います。たぶん私はもっと慎重にgoogleする必要があります:) –
@通진あなたの歓迎:) –