在django中避免/ accounts / login /?

时间:2017-05-25 19:19:51

标签: python django

urls.py

#...
from myapp.views import MyView
from django.contrib.auth.decorators import login_required


urlpatterns = [
    #....
    url(r'^terminator/', login_required(MyView.as_view()), name='sexy')

]

views.py

class MyView(View):


    def get(self, request):
        return render(request, 'itworks.html')

我通过MyView课程访问Somelogin课程,该课程重定向到"终结者网址"。但问题是:django将我重定向到以下网址“http://127.0.0.1:8000/accounts/login/?next=/terminator

当然,这个地址没有定义,给了我404.

我在设置中使用LOGIN_REDIRECT_URL,但这只会给代码带来更多混乱。所以无论如何要避免这种情况"默认/下一步"在django,然后去" http://127.0.0.1:8000/terminator"

由于

2 个答案:

答案 0 :(得分:2)

您需要在 LOGIN_URL 中定义 settings.py。这将覆盖帐户/登录的默认 URL。

添加到您的设置:

LOGIN_URL = 'login'

之前:

http://localhost:8000/accounts/login/?next=/password/reset

之后:

http://localhost:8000/login?next=/password/reset

答案 1 :(得分:0)

您可以通过转到管理员并登录来避免它,以便您不会被重定向。 我通过添加: url(r'^accounts/',include(admin.site.urls)) 在urls.py文件中。 希望它有所帮助