【发布时间】:2017-12-17 05:19:02
【问题描述】:
我有这些示例数据库模型
class Book(models.Model):
name = CharField()
price = IntegerField()
class Author(models.Model):
name = CharField()
book = ForeignKey(Book, related_name='authors')
type = CharField(choices=('high','medium','low'))
class Random(models.Model):
book = Foreignkey(Book, related_name='randoms')
type = CharField(choices=('high','medium','low'))
rank = PositiveIntegerField()
数据库对象:-
- b1 = Book('book1', 25)
b2 = Book('book2', 30)
作者('author1', b1, 'high')
- 作者('author2', b1, 'medium')
- 作者('author3', b1, 'medium')
作者('author4', b2, 'low')
作者('author5', b2, 'low')
作者('author6', b2, 'low')
随机(b1, 'high', 1)
随机(b1, 'medium', 2)
- 随机(b1,'低',5)
- 随机(b2,'低',3)
- 随机(b2, 'high', 0)
- 随机(b2, 'medium', 0)
将有一个Random 模型,其rank 代表特定类型书籍的作者的正确数量。
例如,如果一本书有 Random(book, 'high', 20)。那么这意味着必须有 20 个作者类型为high。如果作者多于或少于 20 人,则为错误。
我想过滤那些出现此类错误的Book 对象。
这里b1 有零个作者类型=低,但它有随机对象,其中“低”等级为 5。意味着必须有 5 个低类型作者。 b1 有错误。
但这不是b2的情况
如何过滤这些 Book 对象?
【问题讨论】:
标签: django