【问题标题】:django-rest-framework hebrew supportdjango-rest-framework 希伯来语支持
【发布时间】:2015-11-10 20:26:42
【问题描述】:

我正在尝试在我的 RESTful API 中同时支持 EnglishHebrew

当我尝试在 Hebrew 中创建新的 auth.user 时,它会返回

 "{"username":["Enter a valid username. 
This value may contain only letters, numbers and @/./+/-/_ characters."]}"

如何添加对 Hebrew 的支持并允许 Hebrew 用户名?

【问题讨论】:

    标签: django internationalization django-rest-framework hebrew


    【解决方案1】:

    auth.User 来自 Django,因此它与 Django REST 框架没有严格的关系。

    您可以通过extra_regexp 覆盖用户名上的默认正则表达式,但我不能保证它会起作用,因为正则表达式是从模型中提取的。

    如果不是,您最好的选择是定义自定义用户类并覆盖用户名 (https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#substituting-a-custom-user-model)

    【讨论】:

      【解决方案2】:

      一种方法是编写您自己的自定义用户类,指定为here

      如果您不想这样做,这里有一个更老套的解决方案。字符限制在 Django 的 User 模型中强制执行,但在数据库中没有 - 因此您也可以禁用 username 字段上的验证器。假设您的User 模型的序列化程序称为UserSerializer,添加:

      def init(self, *args, **kwargs):
              super(UserSerializer, self).__init__(*args, **kwargs)
              self.fields['username'].validators = []
      

      【讨论】:

      • 我使用的是 django-rest-framework,所以不使用表单
      猜你喜欢
      • 2016-03-19
      • 2011-05-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-04
      相关资源
      最近更新 更多