我在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格式返回数据。
答案 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)
这样做,根据您的需要修改代码