У меня есть две модели:Django- Удалить дубликаты только, если поле присутствует
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
Теперь я хочу, чтобы запросить все книги, которые не принадлежат к серии, и только один из любой книги, которая принадлежат к одной и той же серии (серия может быть нулевой).
Постановка задачи:
я тусклый, чтобы запросить все отдельные книги и серии. Поскольку серия может иметь несколько книг, а книга может не принадлежать серии. Одно из решений - запросить все объекты книги (которые не принадлежат к серии) и запросить все объекты серии, как описано here. Но это дало бы все серии вместе и книги вместе в ответ. Я не хочу, чтобы они были сгруппированы (я также использую разбивку на страницы).
что-то вроде: Book.objects.filter(disctinct only if(series is not None))
Я думал об использовании различны и исключить, но не мог заставить его работать.
В какой базе данных у вас есть? – AKS
@AKS postgresql – dnit13