По сути, модель инкапсулирует информацию о чем-либо (то есть, она моделирует это) и сохраняется в базе данных. Например, мы могли бы смоделировать человека:
from django import models
class Person(models.Model):
name = models.CharField(max_length=100)
age = models.PositiveIntegerField()
height = models.FloatField()
weight = models.FloatField()
Каждый раз, когда экземпляр модели создается и сохраняется, Django сохраняет его в базе данных для последующего извлечения и использования.
С другой стороны, формы соответствуют HTML-формам, т. Е. Набору полей, которые предоставляются конечному пользователю для заполнения некоторых данных. Форма может быть полностью независимой от модели, например формы поиска:
from django import forms
class SearchForm(forms.Form):
search_terms = forms.CharField(max_length=100)
max_results = forms.IntegerField()
При отправке Django заботится о проверке значений, введенных пользователем, и преобразовании их в типы Python (например, целые числа). Все, что вам нужно сделать, это написать код, который что-то делает с этими значениями.
Конечно, если вы создали модель, вам часто нужно разрешить пользователю создавать эти модели с помощью формы. Вместо того, чтобы дублировать все имена полей и создавать форму самостоятельно, Django предоставляет ярлык для этого, ModelForm
:
from django.forms import ModelForm
class PersonForm(forms.ModelForm)
class Meta:
model = Person
Что касается дальнейшего чтения, я бы начал с документации Django , которая включает в себя учебное пособие по созданию и использованию моделей и довольно углубленный взгляд на формы. Есть также множество книг и онлайн-учебников по Django, которые помогут вам в этом.