Back to questions
Junior — Middle
64
В чем ключевое различие между стандартной формой и формой, основанной на модели, в Django?
Companies where asked
LuckyGroup
Answer from AI
sobes.tech AI
Стандартная форма в Django (forms.Form) создается вручную, где вы явно определяете все поля и их валидацию. Она не связана напрямую с моделями базы данных.
Форма, основанная на модели (forms.ModelForm), автоматически генерируется на основе модели Django. Это упрощает создание форм для создания и редактирования записей в базе данных, так как поля и валидация наследуются из модели.
Пример:
from django import forms
from myapp.models import Product
# Стандартная форма
class ContactForm(forms.Form):
name = forms.CharField(max_length=100)
message = forms.CharField(widget=forms.Textarea)
# Форма на основе модели
class ProductForm(forms.ModelForm):
class Meta:
model = Product
fields = ['name', 'price', 'description']
Таким образом, ModelForm экономит время и снижает вероятность ошибок при работе с моделями.