我的django rest项目中的AttributeError

时间:2017-09-12 10:29:47

标签: django django-rest-framework

class SnippetSerializer(serializers.HyperlinkedModelSerializer):
       owner = serializers.ReadOnlyField(source='owner.username')
       highlight = serializers.HyperlinkedIdentityField(view_name='snippet-highlight', format='html')

       class Meta:
            model = Snippet
            fields = ('url', 'id', 'highlight', 'owner',
              'title', 'code', 'linenos', 'language', 'style')

它是我的SnippetSerializer类,也定义了

owner = serializers.ReadOnlyField(source='owner.username')

我发出了一个错误 / snippets / 3 / highlight /中的AttributeError '片段'对象没有突出显示的属性' 你能解决吗?

class SnippetHighlight(generics.GenericAPIView):
queryset = Snippet.objects.all()
renderer_classes = (renderers.StaticHTMLRenderer,)
def get(self, request, *args, **kwargs):
    snippet = self.get_object()
    return Response(snippet.highlighted)

这是我的SnippetHighlight视图

1 个答案:

答案 0 :(得分:0)

在序列化程序中,您引用highlight字段,属性错误表示没有名为highlighted的属性,请注意最后的d。我的猜测是你试图在代码中的其他地方访问不正确的属性。

回复评论后:

看起来问题在于返回值

return Response(snippet.highlighted)

代码段模型没有属性highlighted,来自序列化程序我认为应该是:

return Response(snippet.highlight)