尝试显示Django用户个人资料时此正则表达式错误是什么?

时间:2018-10-29 18:14:38

标签: python regex django url django-class-based-views

我正在尝试使用正则表达式来捕获用户的用户名,并使用CBV返回显示正确用户信息的JSON响应,但是出现了我不明白的错误。

首先,这是我遇到的错误:

url(r'^ userprofile /(?P [\ w。@ +-] +)',UserProfile.as_view()), NameError:名称“ UserProfile”未定义

我还有其他可以正常工作的URL捕获,它们都是CBV,就像这样,格式相同。

这是URL捕获代码:

url(r'^userprofile/(?P<username>[\w.@+-]+)', UserProfile.as_view())

这是CBV:

class UserProfile(APIView):
    def get(self, request, username):
        obj = User.objects.get(username=username)
        serializer = UserSerializer(obj, many=True)
        return JsonResponse(serializer.data, safe=False)

这是UserSerializer:

class UserSerializer(serializers.ModelSerializer):
    class Meta:
        model = User
        fields = ('__all__')

这是用户模型:

class User(AbstractUser):
    birthdate = models.DateField(null=True)
    gender = models.CharField(
        max_length=1,
        choices=(('M', 'Male'), ('F', 'Female'), ('O', 'Other'), ('U', 
        'Unspecified')),
        default='Unspecified'
    )
    renewal = models.DateField(null=True)

    def __str__(self):
        return '%s %s' % (self.first_name, self.last_name)

这可能很简单,但是我不知道为什么会引发此错误。请指教。谢谢。

1 个答案:

答案 0 :(得分:2)

这不是正则表达式错误。该消息准确地说明了什么:这是一个NameError,因为未定义UserProfile。您需要将其导入到使用它的urls.py中。