【发布时间】:2017-10-13 12:35:20
【问题描述】:
我的应用程序的用户能够阻止其他用户,因此被阻止的用户不会在应用程序的任何位置看到他们的阻止程序。我有以下型号
class User(models.Model):
blocked_users = models.ManyToManyField(
'self', symmetrical=False, through='Block')
class Block(models.Model):
class Meta:
unique_together = ('from_user', 'to_user')
from_user = models.ForeignKey('User', related_name='blocked')
to_user = models.ForeignKey('User', related_name='blocked_by')
所以现在我正在尝试让 Django 执行以下查询,该查询将返回未阻止当前登录用户的用户。
SELECT *
FROM user
LEFT OUTER JOIN block ON (block.from_user_id = user.id AND block.to_user_id = 1)
WHERE block.id is null
其中1 是当前登录用户的ID。
【问题讨论】:
标签: python django django-orm