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
Django REST | | Python?将属性类作为键值对数组_Python_Django_Python 2.7_Django Rest Framework - Fatal编程技术网

Django REST | | Python?将属性类作为键值对数组

Django REST | | Python?将属性类作为键值对数组,python,django,python-2.7,django-rest-framework,Python,Django,Python 2.7,Django Rest Framework,我目前正在做测试,在测试时遇到了一些让我困惑的问题 >>> snippet =Snippet(code='foo = "bar"\n') >>> snippet.save() >>> snippet = Snippet(code='print "hello, world"\n') >>> snippet.save() >>> serializer = SnippetS

我目前正在做测试,在测试时遇到了一些让我困惑的问题

>>> snippet =Snippet(code='foo = "bar"\n')
>>> snippet.save()
>>> snippet = Snippet(code='print "hello, world"\n')
>>> snippet.save()
>>> serializer = SnippetSerializer(snippet)
>>> serializer.data
>>> {'style': 'friendly', 'code': u'print "hello, world"\n', 'language': 'python', 'title': u'', 'linenos': False, 'pk': 2}
特别是最后一行。我没有定义
数据
类或实例属性。
SnippetSerializer
类定义如下:

来自django.forms导入小部件的

从rest_框架导入序列化程序
从snippets.models导入代码段、语言选项、样式选项
类代码段序列化程序(serializers.Serializer):
pk=序列化程序.整型字段(只读=真)
title=serializers.CharField(必需=False,允许空白=True,最大长度=100)
code=serializers.CharField(style={'base_template':'textarea.html'})
linenos=serializers.BooleanField(必需=False)
language=serializers.ChoiceField(choices=language\u choices,默认值='python')
style=serializers.ChoiceField(选项=style\u选项,默认为友好)
def创建(自我验证的_数据):
"""
在给定已验证数据的情况下,创建并返回新的“Snippet”实例。
"""
返回Snippet.objects.create(**已验证的_数据)
def更新(自身、实例、已验证的_数据):
"""
根据已验证的数据,更新并返回现有的“Snippet”实例。
"""
instance.title=validated_data.get('title',instance.title)
instance.code=validated_data.get('code',instance.code)
instance.linenos=validated_data.get('linenos',instance.linenos)
instance.language=validated\u data.get('language',instance.language)
instance.style=validated_data.get('style',instance.style)
save()实例
返回实例
我看到
SnippetSerializer
类与
序列化器是相关的。Serializer
(对吗?),但它似乎也没有
数据
属性。它显然可以工作,并允许我以键值对数组的形式访问所有
snippetserializer
属性。我只是在任何地方都找不到这方面的文档。
data
是python中的保留字吗?这是Django REST独有的吗?还是有些遗产我没有看到


提前谢谢你

data
是序列化程序从中继承的BaseSerializer类的属性。请参阅。

数据是序列化程序从中继承的BaseSerializer类的属性。请参阅。

数据是序列化程序从中继承的BaseSerializer类的属性。请参阅。

数据是序列化程序从中继承的BaseSerializer类的属性。请参阅。

谢谢!我找不到。我只是想确定python没有做一些奇特的黑魔法。一般来说,python遵循“显式优于隐式”的哲学,所以黑魔法是不受欢迎的。谢谢!我找不到。我只是想确定python没有做一些奇特的黑魔法。一般来说,python遵循“显式优于隐式”的哲学,所以黑魔法是不受欢迎的。谢谢!我找不到。我只是想确定python没有做一些奇特的黑魔法。一般来说,python遵循“显式优于隐式”的哲学,所以黑魔法是不受欢迎的。谢谢!我找不到。我只是想确定python没有做一些奇特的黑魔法。一般来说,python遵循“显式优于隐式”的哲学,所以黑魔法是不受欢迎的。