如何从不同模型的json响应列表中查询集?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从不同模型的json响应列表中查询集?相关的知识,希望对你有一定的参考价值。

我有两个这样的模特

class User(models.Model):
   user_id = models.IntegerField(primary_key=True)
   name = models.CharField(max_length=18)
   last_name = models.CharField(max_length=10)
   age = models.CharField(max_length=10)


class Friend(models.Model):
   friend_id = models.IntegerField(primary_key=True)
   name = models.CharField(max_length=18)
   age = models.CharField(max_length=10)

friend_iduser_id是同一个id

users = User.objects.filter(user_id=1)
friends = Friend.objects.filter(friend_id=1)

我像这样建立联盟

merge = list(users) + list(friends)
[<User: User object (1)>, <Friend: Friend object (1)>] 

我想做的是来自merge的json回复

HttpResponse(json.dumps(merge), content_type='application/json')

我希望你理解我的问题以及如何实现它的一些想法

答案

我这样解决了我的问题

merge = sorted( chain(users, friends) key=attrgetter('1'))

data = serializers.serialize('json', merge)
return HttpResponse(data, content_type='application/json')

以上是关于如何从不同模型的json响应列表中查询集?的主要内容,如果未能解决你的问题,请参考以下文章

如何从两个模型填充 ModelChoiceField

将来自不同模型的两个查询集合并为一个查询集

如何对从查询集多对多字段中提取的列表进行分组?

Django 将查询集序列化为 JSON 以仅使用字段信息和 id 构造 RESTful 响应

有没有办法将 Django 模型查询集转换为模板中的 json 或 json 字符串?

如何将此 JSON 格式转换为模型类并使用改造将响应转换为列表