3
这里是我的模型:Django的REST框架:串行未找到属性
class Address(models.Model):
"""
This is an Adress
"""
address_complete = models.CharField(max_length=100)
door_code = models.CharField(max_length=20, blank=True, null=True)
floor = models.IntegerField(blank=True, null=True)
infos = models.CharField(max_length=100, blank=True, null=True)
class Meta:
verbose_name_plural = "Addresses"
我serializer.py创建了一个串行本:
from rest_framework import serializers
from party_app.models import Address, UserProfile, Stuff, Event, Bringing, Quantity
class AddressSerializer(serializers.Serializer):
pk = serializers.Field()
address_complete = serializers.CharField(max_length=100)
door_code = serializers.CharField(max_length=20)
floor = serializers.IntegerField()
infos = serializers.CharField(max_length=100)
def restore_object(self, attrs, instance=None):
"""
Create or update a new UserProfile instance.
"""
if instance:
# Update existing instance
instance.address_complete = attrs.get('address_complete', instance.address_complete)
instance.door_code = attrs.get('door_code', instance.door_code)
instance.floor = attrs.get('floor', instance.floor)
instance.infos = attrs.get('infos', instance.infos)
return instance
# Create new instance
return Address(**attrs)
当我试图序列地址?使用python管理PY壳,这里是我的了:
>>> seria = AddressSerializer(Address)
>>> seria.data
AttributeError: type object 'Address' has no attribute 'address_complete'
作为新DjangoRestFramework,我只是不知道为什么我得到这个...
如果你看到明显的东西,我会很高兴知道它!
我试过modelSerialiser,但这次我有“AttributeError:type object'Address''没有属性'id'” – 2013-02-25 18:23:14
你是否缺少ID?见上面 – 2013-02-25 22:34:33
那么你帮了我很多。你的解决方案正在工作但我真正的错误是一个'小白'之一:我做了一个seria = AddressSerializer(地址),而不是一个seria = AddressSerializer(地址)(基本上我试图序列化模型,而不是模型中的对象...) – 2013-02-26 08:35:48