tengo los siguientes modelos:Excluir toda QuerySet de los resultados
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)
me gustaría hacer una consulta como esta:
banned_songs = BannedSong.objects.filter(lib_entry__player=activePlayer)
available_songs = LibraryEntry.objects.filter(player=activePlayer).exclude(banned_songs)
Básicamente, si se prohibió una canción, que desea excluir de mi conjunto de canciones disponibles. ¿Hay alguna manera de hacer esto en Django?
¿No puedes hacer 'is_banned' un campo booleano de su modelo LibraryEntry? – jimw
Sí, pero muy pocas canciones en realidad serán prohibidas en comparación con el número que no lo son. Pensé que agregar un campo booleano que en su mayor parte solo va a ser un valor es una mala forma. –
No diría eso, pero supongo que es una cuestión de gusto. – jimw