내 사용자가 .
, -
, _
, ñ
사이의 다른 문자와 같은 문자로 생성 될 수 있음 그들의 username
필드는 primary_key=True,
입니다.Django Rest Framework - ".", "-", "_"문자로 된 필드 사용자 이름
가 내 관심의 username
분야와 관련,이 방법의 내 사용자 지정 사용자 (AbstractBaseUser
)를 정의 :
class UserSerializer(serializers.ModelSerializer):
username = serializers.CharField(validators=[UniqueValidator(queryset=User.objects.all(), message='Lo sentimos, existe un fichaje con este nombre de usuario')])
email = serializers.EmailField(validators=[UniqueValidator(queryset=User.objects.all(), message='Lo sentimos, alguien ya ha sido fichado con este correo electrónico')])
class Meta:
model = User
fields = ('url', 'username', 'password', 'first_name','last_name',
'age','other fields ...',)
내 UserViewSet가 있습니다 :
class User(AbstractBaseUser, PermissionsMixin):
username = models.CharField(
_('username'),
max_length=30,
primary_key=True,
unique=True,
help_text=_('Required. 30 characters or fewer. Letters, digits and @/./+/-/_ only.'),
validators=[
RegexValidator(
r'^[\[email protected]+-]+$',
_('Enter a valid username. This value may contain only '
'letters, numbers ' 'and @/./+/-/_ characters.')
),
],
error_messages={
'unique': _("A user with that username already exists."),
},
)
email = models.EmailField(max_length=254, unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['username']
objects = UserManager()
내 UserSerializer
것은 이것이다 다음 :
class UserViewSet(viewsets.ModelViewSet):
"""
API endpoint that allows users to be viewed or edited.
"""
queryset = User.objects.all().order_by('-date_joined')
serializer_class = UserSerializer
filter_fields = ('username', 'is_player', 'first_name', 'last_name', 'team' , 'email',)
내가 테 username
분야에서 bacalao.cevichica
같은 예를 들어 .
문자를 가진 사용자를 만들 때 R은 urls.py
router = routers.DefaultRouter()
router.register(r'users', UserViewSet)
이 방법 OG의 정의, 사용자가 생성되지만 나는 localhost:8000/api/users/
I에 갈 때 나는 매우 친숙하고 있지 않다
File "/home/bgarcial/.virtualenvs/fuupbol2/lib/python3.5/site-packages/django/urls/resolvers.py", line 392, in _reverse_with_prefix
(lookup_view_s, args, kwargs, len(patterns), patterns)
django.urls.exceptions.NoReverseMatch: Reverse for 'user-detail' with arguments '()' and keyword arguments '{'pk': 'bacalao.cevichica'}' not found. 2 pattern(s) tried: ['api/users/(?P<pk>[^/.]+)\\.(?P<format>[a-z0-9]+)/?$', 'api/users/(?P<pk>[^/.]+)/$']
:이 메시지 정규 표현을 사용하면 RegexValidator
이 제대로 형성되지 않았을 가능성이 있습니까?
또한 내 문제는 UserSerializer
또는 UserViewSet
일 수 있습니다.
이 주제를 명확히하지 않은 순간 모든 방향을 높이 평가합니다. :)
: URL이 될해야하는지 기본 키의 형식을 알 수 있도록
이 이([^./])
제외.
및/
문자당신은 당신의 뷰셋에
lookup_value_regex
를 추가 할 수있는 기본 정규식 때문입니다 패턴은 마침표를 지원하지 않습니다. 평문에서 사용하는 정규식을 포함 할 수 있습니까? – TankorSmash@TankorSmash 이론에서 RegexValidator ( r '^ [\ w. @ + -] + $', _ ('이 사용자는 유효한' '문자, 숫자' '및 @ /./+/-/_ 문자') ),'모델 사용자 ...의 사용자 이름 입력란에? 사과드립니다. 정규 표현식을 가진 초보자입니다. – bgarcial