尝试显示 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 中导入它。
我正在尝试使用正则表达式来捕获用户的用户名,并使用 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 中导入它。