действие формы не работает для перенаправления в django v2 - PullRequest
0 голосов
/ 23 марта 2020

Действие формы не перенаправляет из дома. html на пароль. html в Django 2, даже если я перепроверяю все, включая шаблон URL Ниже я делюсь базовым c кодом. Приношу свои извинения, если это базовый c вопрос, поскольку я очень плохо знаком с Django, поэтому я не могу обнаружить проблему.

urls.py code

from django.urls import path
from generator import views

urlpatterns = [
    path('', views.home),
    path('password/', views.password),
]

views.py

from django.shortcuts import render
from django.http import HttpResponse

# Create your views here.

def home(request):
    return render(request, 'generator/home.html')

def password(request):
    return render(request, 'generator/password.html')

home. html

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Home</title>
</head>
<body>
<h1>Password Generator</h1>

<form action="password" method="get">
    <select name="length">
        <option value="6">6</option>
        <option value="7">7</option>
        <option value="8">8</option>
    </select>

    <input type="button" value="Generate Password">
</form>



</body>
</html>

password.py

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Password</title>
</head>
<body>
<h1>Password page</h1>
</body>
</html>

Журнал ошибок enter image description here

Структура файла enter image description here

1 Ответ

1 голос
/ 23 марта 2020

Прежде всего, дайте имена в urls.py, чтобы вы могли получить к ним доступ по имени.

urlpatterns = [
    path('', views.home,name="index"),
    path('password/', views.password,name="password"),
]

в home.html удалить действие form

в views.py

from django.urls import reverse

def home(request):
    if request.method == 'POST':
        #you can access input items of form by `request.POST.get('attribute_name')`
        # your logic
        return redirect(reverse('password')
    else:
        return render(request, 'generator/home.html')

, если по-прежнему не появляется ошибка, пожалуйста, поделитесь всем кодом и чего вы хотите достичь

...