【发布时间】:2016-10-06 00:34:27
【问题描述】:
我有两个模型:
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))
我曾想过使用 distinct 和 exclude 但无法实现。
【问题讨论】:
-
您使用的是哪个数据库?
标签: django python-2.7 django-models django-queryset