尝试显示 Django 用户配置文件时这个正则表达式错误是什么?

What is this regex error when trying to display Django User profile?

我正在尝试使用正则表达式来捕获用户的用户名,并使用 CBV 来 return 显示正确用户信息的 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)

这可能很简单,但我不知道为什么会抛出这个错误。请指教。谢谢。

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