持っている私がいる場合:djangoの配列に応じてクエリーセットフィルタ属性を使う方法は?
データは、参加者の配列ですdata= request.data['participants']
Conversation.objects.filter(participants = data).values()
、私はそれらの参加者を持って会話を取得したい
私は、外部キー(多くの1つ)に、配列を比較します。それらの参加者を含む会話を得る。
{
"conversation_id": 38,
"created_at": "2017-08-14T09:15:19.776000Z",
"name": "first conversation",
"participants": [
{
"id": 1,
"username": "zezor93",
},
{
"id": 64,
"username": "tasus22",
}
]
}
会話モデル:
class Conversation(models.Model):
user = models.ForeignKey(User, null=False)
participants = models.ManyToManyField(User, related_name='participants')
created_at = models.DateTimeField(_('created at'), auto_now_add=True)
name = models.CharField(_("file title"), max_length=50, null=True, blank=True)
会話シリアライザ:
class ConversationSerializer(ModelSerializer):
user = UserSerializer(many=False, read_only=True)
participants = UserSerializer(many=True, read_only=True)
class Meta:
model = Conversation
fields = '__all__'
私は参加者の配列に応じてフィルタリングする理由、私はの会話を作成すること参加者のセットは、それらの正確な参加者との会話があるかどうかを知る必要があります私はそれを作成しませんので、私はちょうどそれを返すでしょう、彼らは正確な参加者でない場合、私は新しい会話を作成します。
「in」を確認https://docs.djangoproject.com/en/1.11/ref/models/querysets/#in – neverwalkaloner
「in」は、これらの参加者のいずれかを含む会話を返します。私は会話をしたい'data = request.data ['participants']' – zezor93
あなたの会話には多くの参加者または参加者が1人入っていますか?あなたはdata = request.data ['participants']に配列された参加者の集合しか持たない会話をしたいのですが、どういう意味ですか? – Ykh