2014-04-01 77 views
1

我已经将django注册与django-cms集成。我的网站有多种语言的django-cms,有两种语言英语和法语。我在URL映射中遇到问题。因为django-cms有多种语言,所以它在域名之后附加了语言代码。虽然在Django注册它认为这样的URL为404。 下面是流程,我点击注册按钮,我已明确设置为http://localhost:8000/accounts/register/,它显示注册页面正确,但成功完成注册后,它重定向到http://localhost:8000/en/accounts/register/complete/,其中语言代码与url相关联,并且django-registration说找不到页面。如果我手动从网址中删除语言代码,它工作正常。Django注册Django cms

任何人都可以帮助我吗?

项目的url.py。

urlpatterns = i18n_patterns('', 
    url(r'^admin/', include(admin.site.urls)), 
    url(r'^', include('cms.urls'), name="home"), 
    url(r'^news/', include('multilingual_news.urls')), 
    url(r'^search/', include('haystack.urls')), 
    url(r'^member/',include('openerp_member.urls')), 
    (r'^accounts/',include('registration.backends.default.urls')), 
) 
+0

清理您的网址,cms规则应该是最后一个,以避免匹配新闻/搜索/会员/帐户 – Jerzyk

回答

2

您需要为Django注册添加AppHook。所以我所做的就是:

  • 创建一个名为 “cmsauth”
  • 新的应用程序创建根据cms_apps.py

     
    from cms.app_base import CMSApp 
    from cms.apphook_pool import apphook_pool 
    from django.utils.translation import ugettext_lazy as _ 
    
    class RegistrationApphook(CMSApp): 
        name = _("RegistrationApphook") 
        urls = ["registration.backends.hmac.urls"] 
    
    apphook_pool.register(RegistrationApphook) 
    
  • 创建CMS页面,如 “帐户”

  • 链接AppHook RegistrationApphook(您可能需要重新启动服务器以使其可用)

现在您应该可以访问这些网址。