【发布时间】:2018-01-29 13:25:51
【问题描述】:
如果我有:
data= request.data['participants']
Conversation.objects.filter(participants = data).values()
其中 data 是一组参与者,我想获得有这些参与者参与的对话。
我想将数组与外键(一对多)进行比较,以获取包含这些参与者的对话。
{
"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将返回包含这些参与者之一的任何对话.. 我想获得在data= request.data['participants']中只有这组参与者数组的对话 -
您的对话包含许多参与者或一个参与者?发布您的模型可能会有所帮助。你想在 data=request.data['participants'] 中得到只有这组参与者数组的对话,你的意思是什么?
-
@Ykh 我需要获得具有完全相同参与者的对话..
标签: python arrays django python-2.7 django-queryset