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.