Как составить список ответов из разных моделей? - PullRequest
0 голосов
/ 30 ноября 2018

У меня есть две модели, подобные этой

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_id и user_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)>] 

Я хочу сделать ответ json от merge

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

Надеюсь, вы понимаете мой вопрос и некоторые идеи о том, как его реализовать

1 Ответ

0 голосов
/ 01 декабря 2018

Я решил свой вопрос вот так

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

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