Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 登录\注册重定向_Django_Django Models_Django Forms_Django Templates_Django Views - Fatal编程技术网

Django 登录\注册重定向

Django 登录\注册重定向,django,django-models,django-forms,django-templates,django-views,Django,Django Models,Django Forms,Django Templates,Django Views,我为用户创建了登录\注册表单。我的问题是登录时出现错误: 找不到页面(404)请求方法:获取请求 网址: 如果登录成功,它应该将我重定向到“home.html”。若我登录时出现上述错误,若我点击浏览器中的“后退”按钮,我将被重定向到我的“Home.html”,并成功登录。 我的另一个问题是,当我登录时,我被重定向到DJANGO默认的注销页面,而不是我的“logged_out.html” Views.py @login_required def home(request): return

我为用户创建了登录\注册表单。我的问题是登录时出现错误:

找不到页面(404)请求方法:获取请求 网址:

如果登录成功,它应该将我重定向到“home.html”。若我登录时出现上述错误,若我点击浏览器中的“后退”按钮,我将被重定向到我的“Home.html”,并成功登录。 我的另一个问题是,当我登录时,我被重定向到DJANGO默认的注销页面,而不是我的“logged_out.html”

Views.py

@login_required
def home(request):
    return render(request, 'home.html')


def signup(request):
    if request.method == 'POST':
        form = UserCreationForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            raw_password = form.cleaned_data.get('password1')
            user = authenticate(username=username, password=raw_password)
            login(request, user)
            return redirect('home')
    else:
        form = UserCreationForm()
    return render(request, 'signup.html', {'form': form})
url.py

urlpatterns = [
    path('admin/', admin.site.urls),
    url(r'^$', views.home, name='home'),
    url(r'^login/$', auth_views.LoginView.as_view(), {'template_name': 'login.html'}, name='login'),
    url(r'^logout/$', auth_views.LogoutView.as_view(), {'next_page': 'login'}, name='logout'),
    url(r'^signup/$', views.signup, name='signup'),
]
login.html

{% extends 'base.html' %}

{% block content %}
  <h2>Log in to My Site</h2>
  {% if form.errors %}
    <p style="color: red">Your username and password didn't match. Please try again.</p>
  {% endif %}
  <form method="post">
    {% csrf_token %}
    <input type="hidden" name="next" value="{{ next }}" />
    {% for field in form %}
      <p>
        {{ field.label_tag }}<br>
        {{ field }}<br>
        {% for error in field.errors %}
          <p style="color: red">{{ error }}</p>
        {% endfor %}
        {% if field.help_text %}
          <p><small style="color: grey">{{ field.help_text }}</small></p>
        {% endif %}
      </p>
    {% endfor %}
    <button type="submit">Log in</button>
    <a href="{% url 'signup' %}">New to My Site? Sign up</a>
  </form>
{% endblock %}
{%extends'base.html%}
{%block content%}
登录到我的网站
{%if form.errors%}

您的用户名和密码不匹配。请再试一次

{%endif%} {%csrf_令牌%} {%形式的字段为%} {{field.label_tag}}
{{field}}
{%字段中有错误。错误%}

{{error}

{%endfor%} {%if field.help_text%} {{field.help_text}

{%endif%}

{%endfor%} 登录 {%endblock%}
logged_out.html

{% extends 'base.html' %}

{% block content %}
  <h2>Why are You leaving :(</h2>
{% endblock %}
{%extends'base.html%}
{%block content%}
你为什么要离开:(
{%endblock%}
base.html

<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <title>{% block title %}Simple is Better Than Complex{% endblock %}</title>
  </head>
  <body>
    <header>
      <h1>My Site</h1>
      {% if user.is_authenticated %}
        <a href="{% url 'logout' %}">logout</a>
      {% else %}
        <a href="{% url 'login' %}">login</a> / <a href="{% url 'signup' %}">signup</a>
      {% endif %}
      <hr>
    </header>
    <main>
      {% block content %}
      {% endblock %}
    </main>
  </body>
</html>

{%block title%}简单优于复杂{%endblock%}
我的网站
{%if user.u经过身份验证%}
{%else%}
/ 
{%endif%}

{%block content%} {%endblock%}
home.html

{% extends 'base.html' %}

{% block content %}
  <h2>Welcome, {{ user.username }}!</h2> 
  {% if request.user.is_staff %}
    <a href="{% url 'admin:index' %}">link to admin panel</a>
    <!--<a href="{% url 'signup' %}">Admin</a>-->
  {% endif %}
{% endblock %}
{%extends'base.html%}
{%block content%}
欢迎,{{user.username}}!
{%if request.user.is_staff%}
{%endif%}
{%endblock%}
您需要将其放入
settings.py
文件中,因为您使用的是
django的内置登录名
系统,
django
总是查找url
'profile'


你需要把它放在你的
settings.py
文件中,因为你使用的是
django的内置登录系统,
django
总是寻找一个url
'profile'

谢谢,登录重定向\u url='home'是我所需要的,我是否需要像登录时那样用logout\u url='logout'在url.py和creatin中修复注销g查看“注销”?您可以这样做,或者您可以将其保留为Django的,或者您也可以在设置中查找注销URL或类似的内容谢谢,登录重定向URL='home'是我所需要的,我是否需要像在URL.py中使用logout\u URL='logout'登录时那样,通过创建视图“logout”来修复注销?您可以这样做,或者您可以将其保留为Django的,或者您也可以在设置中查找注销URL或类似的内容。您应该在登录和注销活动后编写重定向代码。没有类似于页面的配置文件,因此它显示404:-页面未找到错误。您应该在登录和注销活动后编写重定向代码。没有page喜欢配置文件,所以它向您显示404:-页面未找到错误。
LOGIN_REDIRECT_URL = '/'