【问题标题】:django using a link containing turkish charactersdjango 使用包含土耳其语字符的链接
【发布时间】:2018-09-08 21:47:53
【问题描述】:

我正在创建 django 项目。 Django 允许在 auth.User 模型中使用土耳其字符 (ş,ü,ö,İ,ğ,ı,ç)。但我想在链接中使用用户名。例如,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']

【问题讨论】:

    标签: django django-forms ascii domain-name django-validation


    【解决方案1】:

    看看https://www.rfc-editor.org/rfc/rfc3987

    本文档定义了一个新的协议元素,即国际化 资源标识符 (IRI),作为统一资源的补充 标识符 (URI)。 IRI 是一个字符序列 通用字符集 (Unicode/ISO 10646)。从 IRI 到的映射 定义了URIs,这意味着可以使用IRIs来代替URIs, 酌情确定资源。

    这解释了当字符超出 ASCII 范围时如何生成正确的 URL。 例如:http://www.w3.org/People/D%C3%BCrst/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-08-09
      • 2015-01-07
      • 2014-07-25
      • 1970-01-01
      • 1970-01-01
      • 2018-08-03
      • 1970-01-01
      • 2021-07-21
      相关资源
      最近更新 更多