Tag モデルのインスタンスの pk リストがあるとします。
pk_list = [10, 6, 3]
タグの m2m フィールドを持つ別のモデルと、正確に 3 つのタグ (上記の pks) を含むインスタンスがあります。
class Node(models.Model):
...
tags = models.ManyToManyField(Tag, related_name='nodes')
pk_list で指定されたタグの正確なセットを含むノードを取得したいと考えています。私がする時
Node.objects.filter(tags__in=pk_list)
3 つの同じインスタンスのリストを返します
[<Node: My node title>, <Node: My node title>, <Node: My node title>]
.get() の呼び出しは機能しません。明らかに、単一のインスタンスを返す必要があるためです。
では、単一のインスタンスを取得するにはどうすればよいでしょうか? 私のpk_listが異なっていた場合、たとえば. [10, 6] または [10, 6, 3, 7] の場合、何も受け取る必要はありません。正確な一致が必要です。
ありがとう