首页 > 如何将Django userena的以用户名为URL改成以ID为URL?

如何将Django userena的以用户名为URL改成以ID为URL?

Django Userena这个应用挺完善的,但对于中文来说,就是不是太友好了,默认情况下,用户名只能使用字母,数字及下划线,虽然可以修改一下表单限制,改成可以使用中文名,但注册之后,URL都是以用户名来进行参数传送的,如:

...

# Change email and confirm it
    url(r'^(?P<username>[\.\w-]+)/email/$',
       userena_views.email_change,
       name='userena_email_change'),
    url(r'^(?P<username>[\.\w-]+)/email/complete/$',
       userena_views.direct_to_user_template,
       {'template_name': 'userena/email_change_complete.html'},
       name='userena_email_change_complete'),
    url(r'^(?P<username>[\.\w-]+)/confirm-email/complete/$',
       userena_views.direct_to_user_template,
       {'template_name': 'userena/email_confirm_complete.html'},
       name='userena_email_confirm_complete'),
...

我想可以有两个方式来处理这个问题:

大家有什么好的点处理办法没有呢,或者你在处理过这问题问题,能否看看你的代码?

Update:

还有个方法,就是当用户注册的时候,将中文处转译成汉语拼音。


最终我还是使用一个中pinyin.py有代码,将接收到的用户名,直接换成了拼音的,这样其它的内容都没有作任何的修改。

https://github.com/goodspeedcheng/pinyin.py


在国内用中文用户名来做个人页面的URL参数还是挺有好的。
我用的是django 1.8, 直接models里面coding:ctf-8, urls里面(?P<fullname>\w+),也可以用。

【热门文章】
【热门文章】