Что это за ошибка регулярного выражения при попытке отобразить профиль пользователя Django? - PullRequest
0 голосов
/ 29 октября 2018

Я пытаюсь использовать регулярное выражение для захвата имени пользователя пользователя и использовать 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 голосов
/ 29 октября 2018

Это не ошибка регулярного выражения. Сообщение говорит точно, что это: это NameError, потому что UserProfile не определен. Вам необходимо импортировать его в urls.py, где вы его используете.

...