Json 为什么Django序列化程序告诉我属性不';当我看到它在我的模型中定义时,它不存在吗?
我正在使用Python 3.7和Django rest框架将一些模型序列化为JSOn数据。我有这个Json 为什么Django序列化程序告诉我属性不';当我看到它在我的模型中定义时,它不存在吗?,json,django,serialization,django-rest-framework,Json,Django,Serialization,Django Rest Framework,我正在使用Python 3.7和Django rest框架将一些模型序列化为JSOn数据。我有这个 data = { 'articlestats': ArticleStatSerializer(articlestats, many=True).data, 然后我定义了以下序列化程序 class LabelSerializer(serializers.ModelSerializer): class Meta: model = Label f
data = {
'articlestats': ArticleStatSerializer(articlestats, many=True).data,
然后我定义了以下序列化程序
class LabelSerializer(serializers.ModelSerializer):
class Meta:
model = Label
fields = ['name']
...
class ArticleSerializer(serializers.ModelSerializer):
label = LabelSerializer()
class Meta:
model = Article
fields = ['id', 'title', 'path', 'url', 'label']
class ArticleStatSerializer(serializers.ModelSerializer):
article = ArticleSerializer()
class Meta:
model = ArticleStat
fields = ['id', 'article', 'score']
我已经像这样定义了我的标签模型
class Label(models.Model):
name = models.CharField(max_length=200)
def __str__(self):
return self.name
class Meta:
unique_together = ("name",)
但当Django处理我的序列化行时,我遇到了这个错误
AttributeError: Got AttributeError when attempting to get a value for field `name` on serializer `LabelSerializer`.
The serializer field might be named incorrectly and not match any attribute or key on the `str` instance.
Original exception text was: 'str' object has no attribute 'name'.
不知道它为什么抱怨。“name”属性就在那里。我还应该做什么
编辑:模型要求
class ArticleStat(models.Model):
objects = ArticleStatManager()
article = models.ForeignKey(Article, on_delete=models.CASCADE, related_name='articlestats')
score = models.FloatField(default=0, null=False)
class Article(models.Model):
objects = ArticleManager()
title = models.TextField(default='', null=False)
path = models.TextField(default='', null=False)
url = models.TextField(default='', null=False)
label = models.TextField(default='', null=True)
created_on = models.DateTimeField(db_index=True, default=datetime.now)
在
文章
模型中,标签
字段是文本字段
,而不是任何类型的相关字段。但在序列化程序中,它需要一个相关字段
class ArticleSerializer(serializers.ModelSerializer):
label = LabelSerializer()
class Meta:
model = Article
fields = ['id', 'title', 'path', 'url', 'label']
class ArticleSerializer(serializers.ModelSerializer):
标签=标签序列化器()
类元:
模型=文章
字段=['id','title','path','url','label']
您可以添加您的ArticleStat
和Article
模型吗?@ArakkalAbu,模型已添加