gpt4 book ai didi

Django休息框架: Serializer doesn't find attributes

转载 作者:行者123 更新时间:2023-12-02 02:12:59 25 4
gpt4 key购买 nike

这是我的模型:

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 manage?py shell 序列化地址时,这是我得到的:

>>> seria = AddressSerializer(Address)
>>> seria.data
AttributeError: type object 'Address' has no attribute 'address_complete'

作为 DjangoRestFramework 的新手,我只是不知道为什么我得到这个......

如果你看到一些明显的东西,我会很高兴知道它!!

最佳答案

摆脱restore_object,因为您使用的是不需要的模型。使用modelSerializer反而。

class AddressSerializer(serializers.ModelSerializer):

class Meta:
model = Address
fields = ('id', 'address_complete', 'door_code')

关于Django休息框架: Serializer doesn't find attributes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15057123/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com