Джанго, используя ссылку, содержащую турецкие символы - PullRequest
0 голосов
/ 09 сентября 2018

Я создаю проект Django. Django позволяет использовать турецкие символы (ş, ü, ö, İ, ğ, ı, ç) в моделях auth. Пользователь. Но я хочу использовать имена пользователей в ссылках. Например, app.com / şüöİğıç. Нет проблем при работе с некоторыми ссылками (содержащими турецкие символы) на компьютере. Есть ли проблема, когда я публикую проект. Я не могу использовать slugify, потому что один пользователь может быть 'şam', а один пользователь может быть 'sam'. Так что это может быть конфликт. Я хочу создать валидатор имени пользователя для использования только английских букв. Как я могу сделать? Вкратце, есть ли проблема при использовании турецких букв в ссылках (app.com/şüöİğıç) и если есть проблема Как я могу решить эту проблему.

forms.py:

class registerForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
class Meta:
    model = User
    fields = ["email","first_name","last_name","password","username"]


    #model = ACCOUNTS
    #fields=['email','name','surname','username','password','birthday','gender','language']

1 Ответ

0 голосов
/ 09 сентября 2018

Посмотрите на https://tools.ietf.org/html/rfc3987:

Этот документ определяет новый элемент протокола, Интернационализированный Идентификатор ресурса (IRI), как дополнение к унифицированному ресурсу Идентификатор (URI). IRI - это последовательность символов из Универсальный набор символов (Unicode / ISO 10646). Отображение из IRI в URI определены, что означает, что IRI могут использоваться вместо URI, при необходимости, для определения ресурсов.

Это объясняет, как генерировать правильные URL, когда у вас есть символ вне диапазона ASCII. Например: http://www.w3.org/People/D%C3%BCrst/

...