我有一个用于测试Django的开发环境。我正在从“本地” pyenv
安装中运行Python 3.5.2。我有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 /../ 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”安装均已正确完成,但我缺少一些东西。
有想法吗?
最佳答案
在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结构-只需尝试将/ accounts /添加到url,如果您处于Debug模式(DEBUG = True),则404页将显示所有端点。
您还可以在文档中找到端点的所有URL。
希望我能正确理解你的问题:)
关于python - Django Allauth和网址,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40034300/