DRF:AttributeError:'BlogSerializers'对象没有属性'get_uri'
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DRF:AttributeError:'BlogSerializers'对象没有属性'get_uri'相关的知识,希望对你有一定的参考价值。
任何人都可以解释这个问题。
模板恶劣.朋友
class Blog(models.Model):
user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)
title = models.CharField(max_length=120, null=True, blank=True)
content = models.TextField(null=True, blank=True)
timestamp = models.DateTimeField(auto_now_add=True)
def get_api_url(self):
return api_reverse("post-rud", kwargs={"pk": self.pk})
我的序列化程序文件是serializer.py
class BlogSerializers(serializers.ModelSerializer):
uri = serializers.SerializerMethodField(read_only=True)
class Meta:
model = Blog
fields = [
'uri',
'pk',
'user',
'title',
'content',
'timestamp',
]
read_only_fields = ['pk', 'user']
def get_uri(self, obj):
return obj.get_api_url()
错误显示
/ api / blog / post / list /'BlogSerializers'对象中的AttributeError没有属性'get_uri'
如果我在这条线下使用,问题就解决了。但我想了解这个错误。
class BlogSerializers(serializers.ModelSerializer):
# uri = serializers.CharField(read_only=True, source='get_api_url')
您将get_uri
方法添加到元类,而不是序列化器类。只需删除一个缩进级别就可以了。
以上是关于DRF:AttributeError:'BlogSerializers'对象没有属性'get_uri'的主要内容,如果未能解决你的问题,请参考以下文章
DRF 序列化程序错误:AttributeError:“FeedPostSerializer”对象没有属性“auth_user”
python提示AttributeError: 'NoneType' object has no attribute 'append'
python提示AttributeError: 'NoneType' object has no attribute 'append'转发
drf django rest framework 尝试获取序列化程序“软件序列化程序”上字段“image_id”的值时出现 AttributeError(状态码 406)
Python 脚本报错AttributeError: 'module 'yyy' has no attribute 'xxx'的解决方法