作为一个Django新手,我试图从两个模型返回JSON对象,每个对象包含用户名,id,ticketID。现在,代码只是将列表放在一起而不进行索引。我应该指出用户和票证之间存在关系,因此也可以遍历。
{“username”:“Paul”,“id”:2},{“username”:“Paul”,“id”:2},{“username”:“Ron”,“id”:19} ,{“id”:“1c6f039c”},{“id”:“6480e439”}, { “ID”: “a97cf1s”}
class UsersforEvent(APIView):
def post(self, request):
body_unicode = request.body.decode('utf-8')
body = json.loads(body_unicode)
value = body['event']
queryset = Ticket.objects.filter(event = value)
referenced_users = User.objects.filter(ticket_owner__in=queryset.values('id'))
result_list = list(itertools.chain(referenced_users.values('username', 'id'), queryset.values('id')))
return Response((result_list))
答案 0 :(得分:1)
您应该执行单个查询以获取每个相关用户的故障单,然后从那里创建dicts列表。假设您的Ticket模型有一个"所有者"对用户来说是FK的字段:
queryset = Ticket.objects.filter(event=value).select_related('owner')
result_list = [{'ticket_id': ticket.id, 'username': ticket.owner.username, 'user_id': ticket.owner.id}
for ticket in queryset]
(注意,这不应该是POST的操作;这是用于更改数据库中的数据,而不是查询。)