我試圖同時支持英語和希伯來語在我的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的架構,所以無法與形式 –
我的壞工作!我更新了我的答案。 –
謝謝,我明天會試試讓你知道 –