Я пытаюсь использовать регулярное выражение для захвата имени пользователя пользователя и использовать 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)
Это, вероятно, просто, но я не знаю, почему выдается эта ошибка. Пожалуйста, порекомендуйте. Спасибо.