Al principio iniciar con Django fue algo raro ya que los formularios se generaban de forma automática sin poderlos editar y cuando intenté buscar resultados en stackoverflow me decían que modificara mi archivo forms.py pero no tenía ninguno :'(
Ok vamos, para poder hacer esto es necesario crear un archivo llamado forms.py en nuestra app (al lado de views.py y models.py) y dentro de ese archivo crear nuestra clase formulario.
Ejemplo:
forms.py
#importamos forms de nuestro amado django
from django import forms
from .models import Producto #importamos nuestro modelo
# Clase para nuestro formulario
class ProductoForm(forms.ModelForm):
#Charfield requerido y su etiqueta en el formulario será "Nombre"
nombre = forms.CharField(required=True, label="Nombre")
#Charfield opcional con etiqueta "Código"
code = forms.CharField(required=False, label="Código")
#Ejemplo de un textarea no requerido
descripcion = forms.CharField(
required=False,
widget=forms.Textarea,
label="Descripción"
)
class Meta:
model = Producto # Le asignamos nuestro modelo importado
fields = ['nombre', 'code', 'descripcion'] #Los campos en el form (los que estaban en views.py)
# the new bit we're adding
def __init__(self, *args, **kwargs):
super(ProductoForm, self).__init__(*args, **kwargs)
Ahora para poder usar este nuevo modulo que hemos creado tenemos que importarlo en nuestro archivo views.py
#al principio del archivo views.py from .forms import ProductoForm
Y lo asignamos en nuestro CreateView y Updateview (siempre en views.py)
class ProductoCreation(CreateView):
model = Product
success_url = reverse_lazy('productos:list'
#fields = ['nombre', 'code', 'descripcion'] # Esto ya no se usa acá
form_class = ProductoForm #aca le asignamos nuestra case que creamos en forms.py
success_url = reverse_lazy('products:list')
class ProductoUpdate(UpdateView):
model = Product
#fields = ['nombre', 'code', 'descripcion'] # Esto ya no se usa acá
form_class = ProductoForm #aca le asignamos nuestra case que creamos en forms.py
success_url = reverse_lazy('productos:list'
Y.... Listo :D

Play The Real Money Slot Machines - Trick-Taking Game - Trick-Taking
ResponderEliminarHow casinosites.one to 토토 Play. herzamanindir Play The Real Money Slot Machine. If you are searching for a bsjeon.net fun, casino-roll.com exciting game to play online, we have you covered.