我有两个与外键相关的模型客户端和 clientData 。我想选择那些不在clientData模型中的客户端。模型的结构如下:
class Client(Model):
name = CharField(max_length=NAME_FIELD_LENGTH)
nickname = CharField(max_length=NAME_FIELD_LENGTH, null=True, blank=True, db_index=True)
class clientData(Model):
art = ForeignKey(Art)
client = ForeignKey(Client)
pj = ForeignKey(Pj, null=True, blank=True)
如果我运行此查询
val = Client.objects.filter(clientswiki__client = 1)
它返回id为1的客户端的值,它应该是但我想要的是如果clientData只有一个条目是客户端ID 1那么它将返回来自客户端模型的所有其他条目期望id 1并且我不要该怎么做。
答案 0 :(得分:2)
要选择clientData中不存在的客户端,我们可以获取clientData记录中的客户端列表,然后运行排除以过滤掉它们。
included_clients = clientData.objects.values_list('client', flat=True)
excluded_clients = Client.objects.exclude(id__in=included_clients)