使用现有URL作为登录名
我是 Django 新手,需要以下方面的帮助。每次有人需要登录我的应用程序时,我都希望他们被定向到现有的身份验证 URL:https : //example.com
我已经设置了以下 urls.py:
from django.contrib import admin
from django.urls import path
from .views import *
from django.contrib.auth import views as auth_views
urlpatterns = [
url(r'^admin/', admin.site.urls),
path(r'', auth_views.LoginView.as_view(template_name="login.html"), name="login"),
]
我有一个 login.html 模板”
{% load static %}
<html>
<body>
<head>
<link rel="stylesheet" href="{% static 'css/login.css' %}">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/materialize/1.0.0/css/materialize.min.css">
<link rel="stylesheet" href="//maxcdn.bootstrapcdn.com/bootstrap/3.2.0/css/bootstrap.min.css">
</head>
<nav>
<div>
<a>Quality Dashboard IDM</a>
<ul>
</ul>
</div>
</nav>
<h2>Login</h2>
<form method="post">
{% csrf_token %}
{{ form.as_p }}
<button type="submit">Login</button>
</form>
</body>
</html>
而不是使用这个模板,我想做类似的事情
urlpatterns = [
url(r'^admin/', admin.site.urls),
path(r'', url=https://example.com),
]
我如何基本上将该 URL 粘贴到我的应用程序中,所以每次我输入 IP 地址时,它都会带我到https://example.com?
回答
我想这就是你想要的,你可以直接将 URL 从 urls.py 本身重定向到其他一些 URl。
from django.views.generic import RedirectView
urlpatterns = [
path('some_existing_url/', RedirectView.as_view(url='http://www.google.com')),
path('login/', auth_views.LoginView.as_view(redirect_authenticated_user=True), name='login'),
path('logout/', auth_views.LogoutView.as_view(), name='logout'),
]