私は次のモデルを持っているから、全体のクエリセットを除外:結果
class LibraryEntry(models.Model):
player = models.ForeignKey(Player)
player_lib_song_id = models.IntegerField()
title = models.CharField(max_length=200)
artist = models.CharField(max_length=200)
album = models.CharField(max_length=200)
track = models.IntegerField()
genre = models.CharField(max_length=50)
duration = models.IntegerField()
is_deleted = models.BooleanField(default=False)
class Meta:
unique_together = ("player", "player_lib_song_id")
def __unicode__(self):
return "Library Entry " + str(self.player_lib_song_id) + ": " + self.title
class BannedSong(models.Model):
lib_entry = models.ForeignKey(LibraryEntry)
def __unicode__(self):
return "Banned Library Entry " + str(self.lib_entry.title)
私はこのようなクエリを実行したいと思います。曲が禁止されている場合
banned_songs = BannedSong.objects.filter(lib_entry__player=activePlayer)
available_songs = LibraryEntry.objects.filter(player=activePlayer).exclude(banned_songs)
は基本的に、私は除外したいです私の利用可能な曲のセットから。 Djangoでこれを行う方法はありますか?
あなたLibraryEntryモデルの 'is_banned' ブール型フィールドを作成することができませんか? – jimw
はい、実際には禁止されている曲はほとんどありません。私はブール値のフィールドを追加すると考えていました。ブール値のフィールドは、ほとんどの場合、値が1つしかないことが悪いフォームです。 –
私はそう言っていないだろうが、それは味の問題だと思う。 – jimw