【问题标题】:'str' object has no attribute 'META' error while returning a JsonResponse'str' 对象在返回 JsonResponse 时没有属性 'META' 错误
【发布时间】:2019-06-10 09:11:35
【问题描述】:

我想从我的 Django 视图函数中返回一个 JsonResponse/HttpResponse。但是我得到 'str' 对象没有属性 'META' 错误。该函数的代码如下。

def search(request):

    queryset_list = Influencer.objects.orderby('username')
    if 'username' in request.GET:
        username = request.GET['username']
        if username:
            queryset_list = queryset_list.filter(username__iexact=username)

    #Full Name
    if 'fullname' in request.GET:
        fullname = request.GET['fullname']
        if fullname:
            queryset_list = queryset_list.filter(full_name__iexact=fullname)
     context = {
        'listings':queryset_list,
        'values':request.GET
    }

    filtered_data = serializers.serialize("json",context)    

    return JsonResponse(filtered_data)

【问题讨论】:

  • 试试这个:return JsonResponse(context)
  • 它给出了以下错误Object of type QuerySet is not JSON serializable
  • 发布Influencer 型号代码。
  • class Influencer(models.Model):full_name = models.CharField('Full Name',max_length=100) username = models.CharField('Username',max_length=100,unique=True) photo = models.ImageField(upload_to = 'photos/%Y/%m/%d/',blank=True) email_id = models.EmailField('Email Id',blank=True) external_url = models.URLField('External URL') # instagram_url = models.URLField('Instagram URL',null=True,blank=True) location_city = models.CharField('Location City',max_length=100,null=True,blank=True) categories = MultiSelectField(choices = CATEGORIES,max_length=300)
  • 试试这个:'values': dict(request.GET)

标签: django django-views httpresponse jsonresponse


【解决方案1】:

我没有序列化上下文,而是序列化了获得的 query_list 并且函数正常工作。 最后一个if语句后面的代码应该是这样的。

 serialized_list = serializers.serialize('json',queryset_list)

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    • 2021-07-19
    • 1970-01-01
    • 2020-12-11
    • 2018-02-08
    • 2018-03-15
    相关资源
    最近更新 更多