Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.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
Python 属性错误';元组';对象没有属性';价值观';django rest框架_Python_Django_Django Rest Framework - Fatal编程技术网

Python 属性错误';元组';对象没有属性';价值观';django rest框架

Python 属性错误';元组';对象没有属性';价值观';django rest框架,python,django,django-rest-framework,Python,Django,Django Rest Framework,我正在尝试从django服务器获取数据,并获取此错误 Internal Server Error: /data/site-info/ Traceback (most recent call last): File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 149, in get_response response = self.process_exception_by_middlewa

我正在尝试从django服务器获取数据,并获取此错误

Internal Server Error: /data/site-info/
Traceback (most recent call last):
  File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 149, in get_response
    response = self.process_exception_by_middleware(e, request)
  File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 147, in get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
  File "/Library/Python/2.7/site-packages/django/views/decorators/csrf.py", line 58, in wrapped_view
    return view_func(*args, **kwargs)
  File "/Library/Python/2.7/site-packages/django/views/generic/base.py", line 68, in view
    return self.dispatch(request, *args, **kwargs)
  File "/Library/Python/2.7/site-packages/rest_framework/views.py", line 466, in dispatch
    response = self.handle_exception(exc)
  File "/Library/Python/2.7/site-packages/rest_framework/views.py", line 463, in dispatch
    response = handler(request, *args, **kwargs)
  File "/Library/Python/2.7/site-packages/rest_framework/decorators.py", line 53, in handler
    return func(*args, **kwargs)
  File "/Users/hco/PycharmProjects/tool/linyit/data/views.py", line 17, in site_info
    Response(serializer.data)
  File "/Library/Python/2.7/site-packages/rest_framework/serializers.py", line 674, in data
    ret = super(ListSerializer, self).data
  File "/Library/Python/2.7/site-packages/rest_framework/serializers.py", line 239, in data
    self._data = self.to_representation(self.instance)
  File "/Library/Python/2.7/site-packages/rest_framework/serializers.py", line 614, in to_representation
    self.child.to_representation(item) for item in iterable
  File "/Library/Python/2.7/site-packages/rest_framework/serializers.py", line 459, in to_representation
    fields = self._readable_fields
  File "/Library/Python/2.7/site-packages/django/utils/functional.py", line 33, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Library/Python/2.7/site-packages/rest_framework/serializers.py", line 353, in _readable_fields
    field for field in self.fields.values()
AttributeError: 'tuple' object has no attribute 'values'
my_app/url.py:

urlpatterns = [
    url(r'^site-info/$', site_info, name='site_info'),
]
my_app/models.py:

from __future__ import unicode_literals

from django.db import models

# Create your models here.
class SiteInfo(models.Model):
    site_id = models.IntegerField(primary_key=True)
    site_name = models.CharField(max_length=100, blank=True, null=True)
    latitude = models.DecimalField(max_digits=18, decimal_places=15, blank=True, null=True)
    longitude = models.DecimalField(max_digits=18, decimal_places=15, blank=True, null=True)

class Meta:
    # managed = False
    db_table = 'site_info'
数据/视图:

from rest_framework.decorators import api_view
from rest_framework.response import Response

from .models import SiteInfo
from .serializers import SiteInfoSerializer


# Create your views here.
@api_view(['GET', 'POST'])
def site_info(request):
"""
    List all sites
"""
    if request.method == 'GET':
       sites = SiteInfo.objects.using('teldata').all()
       serializer = SiteInfoSerializer(sites, many=True)
       Response(serializer.data)
我的应用程序/序列化程序:

from rest_framework import serializers

from .models import SiteInfo


class SiteInfoSerializer(serializers.ModelSerializer):
    model = SiteInfo
    fields = ('site_id', 'site_name', 'latitude', 'longitude')

有什么问题吗?谢谢

您的序列化程序需要使用嵌套的
类来声明
模型
字段
(您将它们声明为类的常规属性,而不是嵌套它们):

通过在serializers.py中添加(class Meta),可以根据我得到的错误来解决错误


您在
响应(serializer.data)
中有
返回
作为前缀,对吗?是的,您是对的,我不知道我怎么看不到它。为那个愚蠢的misatake感到抱歉:(谢谢它解决了我的问题:)我犯了其他一些小错误,但这是我猜的主要问题当我看到这些元类时,我倾向于想到Django中的表单。这是我提醒我把它放在一个元类中的奇怪方式。请不要发布代码的图片。张贴代码本身。
class SiteInfoSerializer(serializers.ModelSerializer):
    class Meta:
        model = SiteInfo
        fields = ('site_id', 'site_name', 'latitude', 'longitude')