Estoy involucrandome en el mundo de Python y Django Framework, tengo que decir que venir desde php y cambiar Python + Django a veces es un poco “frustrante” en cierto modo, mi Framework favorito para Php es CodeIgniter, y  entre Django y CodeIgniter hay una diferencia de la tierra al cielo, recordando que los lenguajes no tienen nada que ver , no existe uno mejor que otro, lo que existe es la forma de uso.

En fin con mi background de php, vengo pensando, "tengo que hacer un formulario donde la data se guarde en una tabla mysql, no tengo que tener el formulario completo, solo un dropdown y un boton para enviar, entonces, necesito los demas campos en HiddenField, ok, bien, eso es un cachu"

Yo estaba equivocado, en Django no hay que renderizar o tener campos tipo hidden (siempre y cuando la data se tenga que agregar automaticamente tipo “fecha / hora” de envio de la data) para que se guarde la informacion que debe ir de forma automatica, como fecha/hora de envio de la data, Django hace ese trabajo por ti, pero yo no lo sabia…o no me habia detenido a pensarlo hasta que amanecio (un dia despues).

Si, asi es , he duraro un par de horas largas haciendo un formulario y que esta data se guarde en la respectiva tabla mysql, y bueno, aqui explico mi gran error , aunque sinceramente no es un error, es mas cuestion de entender el Framework y/o encontrar una buena explicacion sobre en que te puede ayudar…o en mi caso descubrirlo por ti mismo.

Your Ad Here

Ejemplos de mi caso:

@model.py

class Ingreso(models.Model):
     fecha = models.DateField(auto_now_add=True)
     socio = models.ForeignKey(User)
     fentrada = models.DateTimeField(auto_now_add=True)
     status = models.IntegerField(max_length=1,choices=STATUS,default=0,editable=False)
     ffin = models.DateTimeField(verbose_name='Datos de finalizacion',editable=False,null=True,blank=True)
     tipo = models.ForeignKey(Tipos)
     secuencia = models.IntegerField(max_length=2)
def __unicode__(self):
     return u'%s %s %s %s %s %s' % (self.socio, self.tipo,self.fecha,self.fentrada,self.ffin,self.status)

En este modelo tenemos unos cuantos campos especiales, fecha, fentrada, ffin, estos campos deberian enviar datos tipo “fecha, fecha/hora” y un null para la primera vez que se crea la data “ffin”, entonces, ¿cual seria la solucion mas logica?… en php o CodeIgniter (en mi caso), se que hay Frameworks que pueden hacerlo igual que Django, pero no los he probado a profundidad, entonces, la solucion seria crear campos hidden en el formulario, pasarle alguna funcion que me escriba la fecha , fecha/hora y listo, enviar el formulario… siii, asi funcionaria… pero sucede que estoy haciendo trabajo “De Mas”, por que no necesito renderizar esos campos ni pasarle alguna funcion para que tenga la fecha, fecha/ hora, Django automaticamente se encagara de esa parte…yo no tengo nada que buscar ahi, pero….yo como nuevo con Django, no lo sabia o no lo habia entendido.

@Form.py

class IngresoForm(ModelForm):
     class Meta:
          model = Diligencia
          exclude =('socio','secuencia','ffin','fecha','fentrada') #los campos que no quiero renderizar en el formulario, pero que Django enviara su respectiva data por mi

Algo tan sencillo como eso.

VN:F [1.9.3_1094]
Rating: 10.0/10 (2 votes cast)
VN:F [1.9.3_1094]
Rating: -1 (from 1 vote)
Django lo hace por ti...tranquilo, 10.0 out of 10 based on 2 ratings