私は何度もグーグルで検索しましたが、それがわからないようです。
djangoで単純な結合クエリを再作成するにはどうすればよいですか?
models.py 内 (Fylker は郡、Dagensrepresentanter は人)
class Fylker(models.Model):
id = models.CharField(max_length=6, primary_key=True)
navn = models.CharField(max_length=300)
def __unicode__(self):
return self.navn
class Meta:
db_table = u'fylker'
class Dagensrepresentanter(models.Model):
id = models.CharField(max_length=33, primary_key=True)
etternavn = models.CharField(max_length=300, blank=True)
fornavn = models.CharField(max_length=300, blank=True)
fylke = models.ForeignKey(Fylker, db_column='id')
def __unicode__(self):
return u'%s %s' % (self.fornavn, self.etternavn)
class Meta:
ordering = ['etternavn'] # sette default ordering
db_table = u'dagensrepresentanter'
モデルは django によって自動作成されるため、ForeignKey を追加して郡に接続しようとしました。id フィールドは、この django プロジェクトに統合しようとしているデータベースから継承されます。
照会することにより
Dagensrepresentanter.objects.all()
私はすべての人々を取得しますが、郡は除きます。照会することにより
Dagensrepresentanter.objects.all().select_related()
Dagensrepresentanter.id と Fylker.id に参加しますが、fylke に参加させたいです。
SELECT * FROM dagensrepresentanter d , fylker f WHERE d.fylke = f.id
このようにして、すべての人と同じ結果セットに郡名 (Fylke navn) を取得します。
追加のリクエスト: 私は django のドキュメントを読み、stackoverflow でかなりの数の質問をしましたが、この ORM のことについて頭を悩ませているようには見えません。痛いのはクエリです。データベースを django ORM の用語で考え始める必要がある SQL のようなものと考えることに慣れている人々のための良いリソース (経験/説明を含むブログ投稿など) はありますか?