Как исправить ошибку «Страница не найдена» (404) в django - PullRequest
0 голосов
/ 31 января 2020

Как исправить эту ошибку в django 3.0, когда я пытаюсь добраться до страницы с помощью метода отправки формы, я получаю эту ошибку

Привет, я новичок в Django Язык программирования, Сейчас я разрабатываю проект колледжа в django, Когда я использую формы для создания логина в методе POST . Если я положу это на главной странице, это работает хорошо. Но когда я помещаю формы внутрь другой страницы (о. html), я получаю эту ошибку. Я не могу это исправить. Так что, ребята, пожалуйста, помогите мне ..

> Page not found (404) Request Method:  POST Request
> URL:  http://127.0.0.1:8000/about/login Using the URLconf defined in
> mysite.urls, Django tried these URL patterns, in this order:
> 
> [name='home'] login/ about/ admin/ The current path, about/login,
> didn't match any of these.
> 
> You're seeing this error because you have DEBUG = True in your Django
> settings file. Change that to False, and Django will display a
> standard 404 page.

app / Urls.py

from django.urls import path
from . import views
urlpatterns = [
path('',views.home,name='home'),
path('', views.about, name="about"),
path('', views.login, name="login")
path('admin/', admin.site.urls),
]

project / urls.py

from django.contrib import admin
from django.urls import path,include


from pages.views import home, about, login
urlpatterns = [
path('',home,name='home'),
path('login/',login),
path('about/',about),
path('admin/', admin.site.urls),
]

views.py

from django.shortcuts import render, redirect
from django.http import HttpResponse
# Create your views here.

def home(request, *args, **kwargs):
    return render(request, "test.html")

def about(request,*args, **kwargs):
    return render(request,"inner.html")

def login(request, *args, **kwargs):
    return render(request, "result.html")

HTML ФОРМА

<form action="login" method="POST">
        {%  csrf_token %}
        <label> username</label>
        <input type="text" name="uname"><br>
        <label> Password</label>
        <input type="Password" name="upwd"><br>
        <input type="submit" name="submit" value="submit">
</form> 

1 Ответ

0 голосов
/ 31 января 2020

Ваша основная проблема в action="login" Сначала напишите action="/login" для решения вашей проблемы, потому что теперь вы добавляете login к текущему открытому URL

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...