Создание форм из моделей
Нам все еще нужно построить форму, чтобы позволить нашим пользователям комментировать записи блога. Помните, что у Джанго есть два базовых класса для построения форм: Form и ModelForm. Первый из них был использован ранее для того, чтобы пользователи могли обмениваться постами по электронной почте. В данном случае потребуется использовать ModelForm, поскольку необходимо динамически создавать форму из модели Comment. Измените forms.py приложения блога и добавьте следующие строки:
from .models import Comment
class CommentForm(forms.ModelForm):
class Meta:
model = Comment
fields = ('name', 'email', 'body')
Чтобы создать форму из модели, нужно просто указать, какую модель следует использовать для построения формы в классе Meta формы. Джанго проанализирует модель и динамически построит форму для нас. Каждый тип поля модели имеет соответствующий тип поля формы по умолчанию. Способ определения наших полей модели учитывается при проверке формы. По умолчанию Джанго строит поле формы для каждого поля, содержащегося в модели. Тем не менее, можно явным образом указать, какие поля следует включить в форму с помощью списка полей, или определить поля, которые следует исключить из списка исключений. Для CommentForm мы будем использовать поля name, email и body, поскольку они являются единственными полями, которые нам нужны.