#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 Спасибо тебе