Я пытаюсь разобрать форму HTML (созданную Django) в объект формы. Проблема в том, что при отправке формы я получаю ошибку 'PersonForm' object has no attribute 'name'
. Я попытался использовать request.POST["name"]
вместо этого, но это тоже не сработало. Вот что происходит, когда я печатаю form
: <tr><th><label for="id_name">Name:</label></th><td><input type="text" name="name" value="wow" maxlength="14" required id="id_name"></td></tr>
Это мой models.py
:
class Person(models.Model):
name = models.CharField(max_length=14)
user = models.ForeignKey(
settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,
null=True)
forms.py
:
from django.forms import ModelForm
from findapp.models import Person
class PersonForm(ModelForm):
class Meta:
model = Person
fields = ["name"]
views.py
:
def index(request):
if request.method == 'GET':
form = PersonForm()
return render(request, "findapp/person.html", {"form": form})
elif request.method == 'POST':
form = PersonForm(request.POST)
print(form.name)
person.html
:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body>
<form method="POST">{% csrf_token %}
{{ form.name }}
<button type="submit">Save</button>
</form>
</body>
</html>