Django Allauth和网址

时间:2016-10-14 03:08:04

标签: python django django-allauth

我有一个开发环境来测试Django。我正在使用#34;本地"运行Python 3.5.2。 pyenv安装。我有Django 1.10.2。我昨天发现了allauth注册插件并且一直在使用它但是遇到了障碍。

我的网站是" dev.my.domain.com"。意图是不会有任何公共"有关本网站的生产版本的信息。生产版本将被称为:" members.my.domain.com"。所以,我想知道" allauth"是否有可能。插件让所有非/ adomn入站请求检查auth?

所以,请求:

  • dev.my.domain.com
  • dev.my.domain.com/foo
  • dev.my.domain.com/foo /../酒吧/...

应该检查所有身份验证。如果没有,那么我假设" allauth"将重定向到登录/注册页面。

我尝试将Members/urls.py文件设置为:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^$', include('allauth.urls')),
    url(r'^admin/', admin.site.urls),
]

但是那个炸弹出现了Page Not Found错误和DEBUG消息:

    Using the URLconf defined in Members.urls, Django tried these URL patterns, in this order:
    ^$ ^ ^signup/$ [name='account_signup']
    ^$ ^ ^login/$ [name='account_login']
    ^$ ^ ^logout/$ [name='account_logout']
    ^$ ^ ^password/change/$ [name='account_change_password']
    ^$ ^ ^password/set/$ [name='account_set_password']
    ^$ ^ ^inactive/$ [name='account_inactive']
    ^$ ^ ^email/$ [name='account_email']
    ^$ ^ ^confirm-email/$ [name='account_email_verification_sent']
    ^$ ^ ^confirm-email/(?P<key>[-:\w]+)/$ [name='account_confirm_email']
    ^$ ^ ^password/reset/$ [name='account_reset_password']
    ^$ ^ ^password/reset/done/$ [name='account_reset_password_done']
    ^$ ^ ^password/reset/key/(?P<uidb36>[0-9A-Za-z]+)-(?P<key>.+)/$ [name='account_reset_password_from_key']
    ^$ ^ ^password/reset/key/done/$ [name='account_reset_password_from_key_done']
    ^$ ^social/
    ^$ ^google/
    ^$ ^facebook/
    ^$ ^facebook/login/token/$ [name='facebook_login_by_token']
    ^admin/
    The current URL, , didn't match any of these.

我向我的无知屈服,然后回到allauth docs并使用默认的urls设置:

from django.conf.urls import include, url
from django.contrib import admin

urlpatterns = [
    url(r'^accounts/', include('allauth.urls')),
    url(r'^admin/', admin.site.urls),
]

但是这也会导致有一个未找到页面和另一个消息:

    Using the URLconf defined in Members.urls, Django tried these URL patterns, in this order:
    ^accounts/
    ^admin/
    The current URL, , didn't match any of these.

我认为其余的&#34; allauth&#34;安装已正确完成,但我遗漏了一些东西。

想法?

1 个答案:

答案 0 :(得分:0)

view.py 文件中,您只需要在放弃页面之前做一点“过滤”,以查看用户是否经过身份验证。

这方面的一个例子是:

def myview(request):
    if request.user.is_authenticated():
         # do something if the user is authenticated, like showing a page.
    else:
        # do somthing else

重新设置网址结构 - 只需尝试将/ accounts /添加到网址,如果您处于调试模式(DEBUG = True),404页面将显示所有端点。 您还可以在文档中找到端点的所有URL。

希望我能正确理解你的问题:)