1

我有两个模型客户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,我不知道如何得到那个。

4

1 回答 1

2

要选择 clientData 中不存在的客户端,我们可以获取 clientData 记录中的客户端列表,然后运行排除以将它们过滤掉。

included_clients = clientData.objects.values_list('client', flat=True)

excluded_clients = Client.objects.exclude(id__in=included_clients)
于 2013-10-18T09:38:16.827 回答