Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
序列化程序django rest框架上字段值的属性错误_Django_Serialization_Model_Django Rest Framework_Attributeerror - Fatal编程技术网

序列化程序django rest框架上字段值的属性错误

序列化程序django rest框架上字段值的属性错误,django,serialization,model,django-rest-framework,attributeerror,Django,Serialization,Model,Django Rest Framework,Attributeerror,我收到以下错误: AttributeError: Got AttributeError when attempting to get a value for field `city` on serializer `SearchCitySerializer` 我的序列化程序是正确的,除非我明显遗漏了什么 这是我的模型: class SearchCity(models.Model): city = models.CharField(max_length=200) 这是我的序列化程序 cl

我收到以下错误:

AttributeError: Got AttributeError when attempting to get a value for field `city` on serializer `SearchCitySerializer`
我的序列化程序是正确的,除非我明显遗漏了什么

这是我的模型:

class SearchCity(models.Model):
    city = models.CharField(max_length=200)
这是我的序列化程序

class SearchCitySerializer(serializers.ModelSerializer):
    class Meta:
        model = SearchCity
        fields = ('pk','city')
***我尝试了在字段中没有pk的序列化程序,但仍然失败

在这里,它在视图中使用:

 from serializers import SearchCitySerializer

 def get(self, request, format=None):
        searchcityqueryset = SearchCity.objects.all()
        serializedsearchcity = SearchCitySerializer(searchcityqueryset)

        return Response({
            'searchcity': serializedsearchcity.data,
        })
我得到的完整错误是:

File "/home/rickus/Documents/softwareProjects/211hospitality/suitsandtables/backend/virtualsuits/suitsandtables/suitsandtablessettingsapp/views.py", line 37, in get
    'searchcity': serializedsearchcity.data,
  File "/home/rickus/Documents/softwareProjects/211hospitality/suitsandtables/backend/virtualsuits/local/lib/python2.7/site-packages/rest_framework/serializers.py", line 537, in data
    ret = super(Serializer, self).data
  File "/home/rickus/Documents/softwareProjects/211hospitality/suitsandtables/backend/virtualsuits/local/lib/python2.7/site-packages/rest_framework/serializers.py", line 262, in data
    self._data = self.to_representation(self.instance)
  File "/home/rickus/Documents/softwareProjects/211hospitality/suitsandtables/backend/virtualsuits/local/lib/python2.7/site-packages/rest_framework/serializers.py", line 491, in to_representation
    attribute = field.get_attribute(instance)
  File "/home/rickus/Documents/softwareProjects/211hospitality/suitsandtables/backend/virtualsuits/local/lib/python2.7/site-packages/rest_framework/fields.py", line 462, in get_attribute
    raise type(exc)(msg)
AttributeError: Got AttributeError when attempting to get a value for field `city` on serializer `SearchCitySerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `QuerySet` instance.
Original exception text was: 'QuerySet' object has no attribute 'city'.
[28/Feb/2018 02:41:43] "GET /api/dependancy/suitsadmin/settings/ HTTP/1.1" 500 20823
数据库当前为空,因为数据库中根本没有数据

serializedsearchcity = SearchCitySerializer(searchcityqueryset)
改为

serializedsearchcity = SearchCitySerializer(searchcityqueryset, many=True)
要序列化查询集或对象列表而不是单个对象实例,应在实例化序列化程序时传递
many=True
标志。然后可以传递一个查询集或要序列化的对象列表

改为

serializedsearchcity = SearchCitySerializer(searchcityqueryset, many=True)
要序列化查询集或对象列表而不是单个对象实例,应在实例化序列化程序时传递
many=True
标志。然后可以传递一个查询集或要序列化的对象列表