我试图同时支持英语和希伯来语在我的RESTful API。Django的休息框架希伯来语的支持
当我试图创建一个新的auth.user在希伯来语返回
"{"username":["Enter a valid username.
This value may contain only letters, numbers and @/./+/-/_ characters."]}"
我如何添加支持希伯来语,并允许希伯来语用户名?
我试图同时支持英语和希伯来语在我的RESTful API。Django的休息框架希伯来语的支持
当我试图创建一个新的auth.user在希伯来语返回
"{"username":["Enter a valid username.
This value may contain only letters, numbers and @/./+/-/_ characters."]}"
我如何添加支持希伯来语,并允许希伯来语用户名?
auth.User来自Django,所以它与Django REST框架没有严格的关系。
虽然我无法保证它可以工作,因为正则表达式是从模型中提取的,您可以通过extra_regexp
覆盖用户名上的默认正则表达式。
如果不是你最好的选择是定义一个自定义的用户类和重写的用户名(https://docs.djangoproject.com/en/1.8/topics/auth/customizing/#substituting-a-custom-user-model)
一种方式是按规定here编写自己的自定义用户类。
如果你不想这样做,这里有一个更黑客的解决方案。字符限制在Django的User
模型中强制实施,但不在数据库中 - 所以您也可以在username
字段中禁用验证器。假设你的串行的User
模式被称为UserSerializer
,添加:
def init(self, *args, **kwargs):
super(UserSerializer, self).__init__(*args, **kwargs)
self.fields['username'].validators = []
我使用的Django的REST的架构,所以无法与形式 –
我的坏工作!我更新了我的答案。 –
谢谢,我明天会试试让你知道 –