Djangoのドキュメントではこれを明白に述べておらず、迷惑になります。djangoで2つのモデルが外部キーで接続されている場合、結合を行う必要がありますか?
は、次のモデルを守ってください。
# models
class Venue(models.Model):
name = models.CharField(max_length=150, blank=False)
description = models.CharField(max_length=1000)
image = models.ImageField(upload_to=imgUnique('venueMedia/venueImages'))
streetAddress= models.CharField(max_length=100)
city = models.CharField(max_length=100, blank=False)
state = models.CharField(max_length=100, blank=False)
class Room(models.Model):
name = models.CharField(max_length=150, blank=False)
venue = models.ForeignKey(Venue, related_name='rooms', on_delete=models.CASCADE)
description = models.CharField(max_length=1000)
standingCapacity = models.IntegerField
seatedCapacity = models.IntegerField
image = models.ImageField(upload_to=imgUnique('venueMedia/venueImages'))
私は部屋venue
財産でRoom
モデルでVenue
への外部キー関係を持っています。
これらのテーブルに参加する必要はありますか?または、Venue.objects.all()
は自動的に私のためにそれを行いますか?
Venue.objects.all().select_related('Room')
ことができます:その後、私はそこselect_related()
方法であり、私の理解は、私は次の操作を行うだろうということです理解していない場合
venueList = Venue.objects.raw('''SELECT *
FROM venue_Venue
INNER JOIN venue_Room
ON venue_Venue_id=venue_Room_id''')
:いない場合は、私は次のように生のSQLを持っています。この作品私たちはこれを明確にしますか?あなたが見ることができるように私は研究をたくさん行って、まだ
を使用してください。venuel.objects.all()にはroomオブジェクトが含まれます.u未処理のクエリやいくつかのものを書く必要はありません。たとえば、 'venue = Venue.objects。もしあなたが部屋の名前を取得したい場合は、 'venue.room.name'を使うことができます。これは私に知らせてくればうまくいきます。 –
ありがとうございました。これは良いです。 –