Ich habe zwei Modelle:Django- Duplikate nur entfernen, wenn ein Feld vorhanden ist
class BookSeries(models.Model):
title = models.CharField(max_length=200, null=False, blank=False, unique=True)
#extra fields
class Book(models.Model):
series = models.ForeignKey(BookSeries, blank=True, null=True, default=None)
publisher = models.ForeignKey(Publisher, default=None, null=True, blank=True)
title = models.CharField(max_length=200, null=False, blank=False, unique=True)
#extra fields
Jetzt möchte ich alle Bücher abzufragen, die zu einer Serie gehört nicht und nur einer von jeder des Buches, das gehören zu derselben Serie (Serie kann null sein).
Problemstellung:
ich wan alle einzelnen Bücher und Serien abzufragen. Da eine Serie mehrere Bücher haben kann, und ein Buch darf nicht zu einer Serie gehören. Eine der Lösungen besteht darin, alle Buchobjekte abzufragen (die nicht zu einer Reihe gehören) und alle Serienobjekte wie beschrieben here abzufragen. Aber das würde alle Serien zusammen und Bücher zusammen in der Antwort geben. Ich möchte nicht, dass sie zusammen gruppiert werden (ich verwende auch Paginierung).
so etwas wie: Book.objects.filter(disctinct only if(series is not None))
Ich dachte an verschiedenen und ausschließen verwenden, aber konnte es nicht funktioniert.
Welche Datenbank benutzen Sie? – AKS
@AKS postgresql – dnit13