Junior — Middle
112
¿Cuál es la diferencia clave entre la forma estándar y la forma basada en el modelo en Django?
Empresas donde se preguntó
LuckyGroup
Respuesta de la IA
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 экономит время и снижает вероятность ошибок при работе с моделями.