Как отправить несколько объектов через HttpResponse или JsonResponse в Django - PullRequest
0 голосов
/ 17 июня 2019

У меня есть два объекта influenr_data и user_list в моей функции представлений. Я хочу отправить оба influenor_data и user_list с помощью метода HttpResponse и получить данные в формате Json.

Моя функция просмотра:

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

    influencer_data = serializers.serialize("json",influencers) 
    user_list = UserList.objects.all()
    user_list = serializers.serialize("json",user_list)
    context = {
        'influencer_data':influencer_data,
        'user_list':user_list,

    }


    return HttpResponse(influencer_data,user_list, content_type='application/json')

Когда я передаю оба параметра influenr_data и user_list, я получаю сообщение об ошибке

__init__() got multiple values for argument 'content_type'

Когда я изменяю оператор return HttpResponse на

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

Я получаю

influencer_datauser_list

т.е. только ключевые значения из словаря
Когда я изменяю оператор return на

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\": \"\", \"location_city\": \"Mumbai\", \"categories\": \"\", \"hashtags\": \"['#foryou', '#blessyou', '#all', '#faizanshaikh', '#keepsmiling', '#blessed', '#look', 

(объект Json становится строкой)
Когда я передаю только один объект, то есть либо effectr_data, либо user_list. Я получаю объект Json, т.е. он работает правильно (мне нужны данные в указанном формате)

[
    {
        "model": "influencer_listings.influencer",
        "pk": 8794,
        "fields": {
            "full_name": "F A I Z S H A I K H ?",
            "username": "mr_faizzz_07",
            "photo": "",
            "email_id": "",
            "external_url": "",
            "location_city": "Mumbai",
            "categories": "",
            "hashtags": "['#foryou', '#blessyou', '#all', '#faizanshaikh', '#keepsmiling', '#blessed', '#look', '#ramzan', '#loveyou', '#lover', '#cuteboys', '#keepgoing', '#picoftheday', '#feathers', '#brothers', '#faizshaikhhhh', '#pictures', '#jummahmubarak', '#lovers']",

Как мне с этим бороться?

1 Ответ

0 голосов
/ 17 июня 2019
def index(request):
    influencers = Influencer.objects.all().values()
    user_list = UserList.objects.all().values()
    context = {
        'influencer_data': influencer_data,
        'user_list': user_list,
    }
    data = json.dumps(context, indent=4, sort_keys=True, default=str)
    return HttpResponse(data, content_type='application/json')
...