我想讓當前用戶對象可用,以便我的AJAX前端可以確定用戶是否已登錄。無法使用Django Rest Framework序列化AnonymousUser對象 - 缺少屬性
當前用戶是登錄人員的dajngo.contrib.auth.User
或未登錄人員的AnonymousUser
的實例。串行器是如下,
class UserSerializer(serializers.HyperlinkedModelSerializer):
comments = serializers.HyperlinkedRelatedField(many = True, view_name = 'comment-detail')
class Meta:
model = User
fields = ('url', 'username', 'comments', 'first_name', 'last_name')
用下面的視圖用於登錄的用戶,即它補丁上的「註釋」字段,併發送它關閉
class CurrentUserView(APIView):
'''
Returns the current user, logged in or not
'''
def get(self, request, *args, **kwargs):
serializer = serializers.UserSerializer(request.user)
return Response(serializer.data)
此串行器工作正常。但是對於AnonymousUser
它扼殺。它聲稱沒有方法的「評論」(沒有,但它應該補丁的權利?),如果我從fields
刪除'評論'的要求,然後抱怨沒有'first_name'。
這是AnonymousUser
不是django.contrib.auth.User
的實例嗎?如果是這樣,我該如何補救?
我意識到我可以檢查視圖級別並返回一個自定義數據對象,如果它是AnonymousUser
的實例,但有沒有更好的方法來做到這一點?