【发布时间】:2021-09-02 10:18:59
【问题描述】:
我正在尝试在 django 应用程序中获取个人资料页面的用户实例,但我发现实现该功能有些困难。我有以下代码块:
models.py
class Profile(models.Model):
user = models.OneToOneField(settings.AUTH_USER_MODEL, primary_key=True, on_delete=models.CASCADE, default="")
image = models.ImageField(upload_to="images/user_profile_pics/", default="images/default_profile_pics/default.jpg")
firstname = models.CharField(max_length=50)
lastname = models.CharField(max_length=50)
def __str__(self):
return f'{self.lastname} profile'
序列化器.py
class user_profile_serializer(serializers.ModelSerializer):
class Meta:
model = Profile
fields = '__all__'
views.py
class user_profile(generics.GenericAPIView):
serializer_class = user_profile_serializer
def get(self, request, *args, **kwargs):
user = self.get_serializer(request.user).data
if request.user.is_authenticated:
return Response(user, status=status.HTTP_200_OK)
else:
pass
urls.py
urlpatterns = [
path('profile/', user_profile.as_view(), name="user-profile"),
]
当我评估个人资料网址时,我收到一条错误消息'AnonymousUser' object has no attribute 'data' 我尝试了几种方法,但都没有奏效。请问,如何从数据库中获取特定用户?
【问题讨论】:
-
如果用户未登录,您希望在
user.data(->request.user.data) 中出现什么,即。它是AnonymousUser的实例?也许您应该先检查用户是否已登录(request.user.is_authenticated) -
我试过了,还是不行,我什至遇到了NoneType错误
-
定义“不工作”
标签: python django django-rest-framework profile