django - 如何在 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 格式返回。
解决方案
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)
这样做,根据您的需要修改代码
推荐阅读
- keras - 如何使用来自 Caffe 的预训练权重在 Keras 上实现 CaffeNet
- sql - 将插入的日期与触发器中的现有日期进行比较
- mysql - 错误 /usr/libexec/mysqld:文件中的信息不正确
- java - 如何在没有无限循环的情况下计算达到所需平衡的年数?
- ubuntu - Ubuntu 18.04 libicudata.so.58 无法打开
- python - 从 QTableWidget 动态读取值并存储它
- c - realloc,堆内存泄漏
- angularjs - AngularJS:如何动态更新 ng-class 中的条件以应用 CSS 样式
- c++ - SFML 自定义圆数学无法正常工作
- css - 网站菜单居中,但其余项下有一项