Ошибка документа Django в формах в представлениях: Ошибка атрибута: модуль «mdntuto.представления» не имеет атрибута «привет»

#python #django

Вопрос:

Я прочитал все формы в документах Django для 3.2.2, и теперь я работаю над практическими рекомендациями, приведенными в документации для форм, и столкнулся с ошибкой атрибута: код скопирован как есть из документов Django. Все равно остается ошибка. Я проверил 4 раза, не нашел ошибки

Ошибка заключается в:

 path('hello/', views.hello, name='hello'),
AttributeError: module 'mdntuto.views' has no attribute 'hello'
 

Код выглядит следующим образом

 forms.py
from django import forms


class NameForm(forms.Form):
    your_name = forms.CharField(label='Your name', max_length=100)
    user_name = forms.CharField(label='Last name', max_length=20, required=True)
    mobile_number = forms.IntegerField(label='Contact No.')
    email = forms.EmailField(label='Email Address', initial='foo@foo.com', required=True)
    date_of_birth = forms.DateField(label='Enter DOB', initial='YYYY-MM-DD format')
 
 views.py
from django.http import HttpResponseRedirect
from .forms import NameForm
from django.http import HttpResponse
from django.shortcuts import render

def get_hello(request): 
# if use def hello(request): it works fine
# def get_hello(request) is as per Django Docs.
    if request.method == 'POST':
        form = NameForm(request.POST)
        if form.is_valid():
            return HttpResponseRedirect('/thanks/')
    else:
        form = NameForm()
    return render (request, 'mdntuto/hello.html', {'form': form})
 
 hello.html
<form action="/your-name/" method="POST">
    {% csrf_token %}
    {{ form.as_p }}
    <input type="submit" value="Submit">
</form>
 

Комментарии:

1. Имя вашей функции просмотра должно совпадать с именем функции в вашем urls.py . Вам нужно либо перейти urls.py на path('hello/', views.get_hello, name='hello') , либо снова изменить функцию просмотра на def hello(request): .

2. @evergreen Спасибо тебе