我在 Django 中有一个简单的应用程序。简单的逻辑是一种图书图书馆。
表 1。存储用户:
class Readers(Model):
last_name = CharField(...)
first_name = CharField(...)
选项卡 2。存储借书:
class BookBorrows(Model):
index = IntegerField(db_index=True, ...)
reader = ForeignKey('Reader', ...)
book = ForeignKey('Book', ...)
active = BooleanField(...)
我正在努力找出什么是正确的解决方案:
- 至少有一本借书的所有读者列表(字段 active==True)。
- 当前没有任何借书的所有读者列表(字段 active==False)。
经过一些搜索之后,我正在考虑 django .raw('QUERY ...')
或者是否有一种对 django 更友好的方法来实现这一点?
P.S.:这是我发布到 SO 的第一个问题。
最佳答案
reader_ids_with_book = BookBorrows.objects.filter(active=True).values_list(
'reader_id', flat=True
)
readers_without_book = Readers.objects.exclude(id__in=list(reader_ids_with_book))
第一个查询为您提供了至少借了一本书的用户的值列表查询集,您可以使用它来找出还没有借过任何东西的其他用户
关于sql - 从 Django 查询 postgres 数据库以列出所有具有事件图书借阅(tab2)的用户(tab1)的最佳方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41070969/