【发布时间】:2019-01-06 06:10:12
【问题描述】:
我有一个Client、Users 和ClientUsersAssignment 表。客户端被分配给另外一个用户。
我需要检索给定用户有权访问的客户端列表。如何构建我的过滤器?
我在下面的 sn-p 中包含了等效的 SQL。
Client.objects.filter (
# SQL Equivalent Statement
WHERE request.user.id IN (SELECT user FROM ClientStaffAssignment WHERE clientid = client.id)
)
以及完整性的 django 模型:
class User(models.Model):
id = models.AutoField(primary_key=True)
username = models.CharField(max_length=50, unique=True)
password = models.CharField(max_length=50, blank=True, null=True)
class Client(models.Model):
id = models.AutoField(primary_key=True)
first_name = models.CharField(max_length=100)
last_name = models.CharField(max_length=100, blank=True, null=True)
class ClientStaffAssignment(models.Model):
id = models.AutoField(primary_key=True)
client = models.IntegerField(blank=True, null=True)
user = models.ForeignKey (User, blank=True, null=True)
【问题讨论】:
-
您的
Client模型与ClientStaffAssignment和User模型无关
标签: python django python-3.x django-models django-queryset