Django Allauth and urls

5

我有一个用于测试Django的开发环境。 我正在运行Python 3.5.2版本,使用“local” pyenv安装。 我有Django 1.10.2版本。 昨天我发现了allauth注册插件,并一直在尝试它,但遇到了问题。

我的网站是“dev.my.domain.com”。 目的是,在生产版本的此网站上不会有任何“公共”信息。 生产版本将被称为类似于:“members.my.domain.com”。 因此,我想知道是否可能使“allauth”插件检查所有非/ adomn入站请求的身份验证?

因此,以下请求都应检查身份验证:

  • dev.my.domain.com
  • dev.my.domain.com/foo
  • dev.my.domain.com/foo/../bar/...

如果没有身份验证,则我假设“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),
]

但是出现了“页面未找到”错误和 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文档并使用了他们默认的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.

我认为“allauth”的其余安装步骤都正确完成了,但我缺少一些东西。

有什么想法吗?

1个回答

1
在您的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

关于URL结构-只需尝试在URL中添加/accounts/,如果您处于Debug模式(DEBUG = True),404页面将向您显示所有终点。 您还可以在文档中找到所有终点的URL。希望我正确理解了您的问题 :)

嗯,你是在暗示allauth需要我创建默认视图吗?文档似乎没有暗示这一点,但我可能没有正确阅读它们。 - 7 Reeds
你所看到的视图基本上只是一个演示 - 如你所见,它们在实际网站中并不真正可用。你需要使用库将平台嵌入你的视图中 :) - idik
好的,但我的问题是我似乎无法访问示例视图。我只得到“页面未找到”错误和关于URL模式的神秘消息。 - 7 Reeds

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接