【问题标题】:How to send multiple query sets in django?如何在 django 中发送多个查询集?
【发布时间】:2019-06-20 05:53:55
【问题描述】:

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

【问题讨论】:

  • 告诉我们你尝试了什么?
  • 我还没试过。
  • 然后尝试一下,然后询问是否有任何错误

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


【解决方案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)

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

【讨论】:

  • 我想发送来自影响者数据和用户列表的信息,而不仅仅是用户列表。它只适用于一个对象,但在传递两个对象时使 JSON 成为字符串。
  • 修改了一下。
  • 如果我使用基于类的视图怎么办?
猜你喜欢
  • 1970-01-01
  • 2017-03-09
  • 2014-07-08
  • 2021-08-05
  • 1970-01-01
  • 2013-09-06
  • 2015-09-03
  • 2021-02-15
  • 2020-04-30
相关资源
最近更新 更多