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