如何在Django中发送多个查询集?

时间:2019-06-20 05:53:55

标签: django python-3.x django-rest-framework django-views

我在django中创建了一个views函数,该函数返回所有影响者的数据。现在,我想添加用户可以创建多个列表的功能,然后将这些影响者添加到他们创建的任何列表中。用户创建的列表以影响者名称前面的下拉菜单形式显示。如何创建API,以使用户创建的列表显示在影响者的前面。
附注:我想在不使用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格式返回数据。

1 个答案:

答案 0 :(得分:1)

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)

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