首页 > 解决方案 > 如何在 django 中发送多个查询集?

问题描述

我在 django 中创建了一个视图函数,它返回所有影响者的数据。现在我想添加用户可以创建多个列表的功能,然后将这些影响者添加到他们创建的任何列表中。用户创建的列表以下拉菜单的形式显示在影响者姓名前面。我应该如何创建 API,以便用户创建的列表显示在影响者面前。
PS:我想在不使用 django rest 框架的情况下创建 API。
这是我到目前为止所尝试的:

def index(request):
    influencers = Influencer.objects.all()

    influencer_data = serializers.serialize("json",influencers) 
    user_list = UserList.objects.all().filter(user_id = request.user.id)
    user_list = serializers.serialize("json",user_list)
    context = {
        'influencer_data':influencer_data,
        'user_list':user_list,

    }


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

我得到的结果是:

{"influencer_data": "[{\"model\": \"influencer_listings.influencer\", \"pk\": 8794, \"fields\": {\"full_name\": \"F A I Z S H A I K H \\ud83c\\udf08\", \"username\": \"mr_faizzz_07\", \"photo\": \"\", \"email_id\": \"\", \"external_url\": \"\ 
.............................
.............................
"user_list": "[{\"model\": \"user_listings.userlist\", \"pk\": 21, \"fields\": {\"user_id\": 5, \"list_name\": \"Campaign 1\"}}, {\"model\": \"user_listings.userlist\", \"pk\": 22, \"fields\": {\"user_id\": 5, \"list_name\": \"Delhi Campaign\"}}]"}

return 语句使 JSON 对象返回一个字符串。我希望数据以 JSON 格式返回。

标签: djangopython-3.xdjango-rest-frameworkdjango-views

解决方案


from itertools import chain
from django.http import HttpResponse
from django.core import serializers

def index(request):

    user_list = UserList.objects.all().filter(user_id=request.user.id)
    influencers = Influencer.objects.all()
    queryset = list(chain(user_list, influencers ))
    ser_query = serializers.serialize('json', queryset)
    return HttpResponse(ser_query)

这样做,根据您的需要修改代码


推荐阅读