1

外部キーに関連する2 つのモデルClientsclientDataがあります。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 のエントリが 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 に答える