Re: [Django-es] No puedo guardar el valor de mi select en la base de datos

739 views
Skip to first unread message

Axel Díaz

unread,
May 30, 2013, 7:54:16 AM5/30/13
to djan...@googlegroups.com
Intenta con:
if formulario.is_valid():
    formulario.status = True
    formulario.save()
    info = "Guardado satisfactoriamente"
...

No necesitas guardar el formulario para luego cambiar el status y volver a guardar...


El 30 de mayo de 2013 00:47, Hugo Andrade <hugo...@gmail.com> escribió:
Este es mi view.py

def alta_paciente_view(request):
if request.user.is_authenticated():
info = " "
if request.method == "POST":
formulario = AltaPacienteFrom(request.POST)
if formulario.is_valid():
add = formulario.save()# que mantenga en stand by el formulario
add.status = True
add.save() # guardamos la info
formulario.save_pk()
info = "guardado satisfactoriamente"
else:
info = "datos incorrectos"
else:
formulario = AltaPacienteFrom()
tipoSangre = Sangre.objects.all()
mensaje = "Alta Paciente."
ctx = {'form' : formulario,'msj' : mensaje, 'info':info, 'sangre':tipoSangre}
return render_to_response('ginecologo/altanuevopaciente.html', ctx, context_instance=RequestContext(request))
else:
return HttpResponseRedirect('/')

--
--
Ha recibido este mensaje porque está suscrito a Grupo "Grupo de Usuarios del Framework Django de habla hispana" de Grupos de Google.
Si quieres publicar en este grupo, envía un mensaje de correo
electrónico a djan...@googlegroups.com
Para anular la suscripción a este grupo, envíe un mensaje a django-es-...@googlegroups.com
Para obtener más opciones, visita este grupo en http://groups.google.com.bo/group/django-es.
---
Has recibido este mensaje porque estás suscrito al grupo "Django-es" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a django-es+...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 



--
Axel Díaz
San Juan de los Morros - Edo. Guárico
http://about.me/axelio
Linux User #531976
Usuario Canaima #1057
Huella de clave = D580 D9A2 41B0 412A E9A5  D778 DB05 8F60 BED7 96FB

Hugo Andrade

unread,
May 30, 2013, 10:46:11 AM5/30/13
to djan...@googlegroups.com
EL problea no es el status si no que no peudo guardar el dato de un select aqui dejo mi codifgo 
models.py
class Sangre(models.Model):
tipo = models.CharField(max_length=20)

def __unicode__(self):
return self.tipo

class paciente(models.Model):
nombre = models.CharField(max_length=50)
fechaNac = models.DateField(auto_now=False, blank=False,)
fechaCons = models.DateField(auto_now=False, blank=False)
telefonocasa = models.CharField(null=True, max_length=10)
direccion = models.CharField(max_length=100)
email = models.EmailField(null=True)
ocupacion = models.CharField(null=False, max_length=10)
sangre = models.ForeignKey(Sangre)
nombreEsposo = models.CharField(max_length=50)
telAviso = models.CharField(max_length=10)
telcasa = models.CharField(null=True, max_length=10)
movil_id = models.CharField(null=True, max_length=10)
rfc = models.CharField(null=True, max_length=20)
nomFiscal = models.CharField(null=True, max_length=50)
dirFiscal = models.CharField(null=True, max_length=50)
concepto = models.CharField(null=True, max_length=10)
importe = models.DecimalField(max_digits=10, decimal_places=2)
status = models.BooleanField(default=True)

def __unicode__(self):
return self.nombre

forms.py
from django.forms import ModelForm, IntegerField
from ginecologia.apps.paciente.models import paciente

class AltaPacienteFrom(forms.ModelForm):
sangre = forms.IntegerField(label='Sangre')
class Meta:
model = paciente
fields = ['sangre']
exclude = {'status',}
view.py
def alta_paciente_view(request):
if request.user.is_authenticated():
info = " "
if request.method == "POST":
formulario = AltaPacienteFrom(request.POST)
if formulario.is_valid():
add = formulario.save()# que mantenga en stand by el formulario
add.status = True
add.save() # guardamos la info
formulario.save_pk()
info = "guardado satisfactoriamente"
else:
info = "datos incorrectos"
else:
formulario = AltaPacienteFrom()
tipoSangre = Sangre.objects.all()
mensaje = "Alta Paciente."
ctx = {'form' : formulario,'msj' : mensaje, 'info':info, 'sangre':tipoSangre}
return render_to_response('ginecologo/altanuevopaciente.html', ctx, context_instance=RequestContext(request))

#else: #si es GET
"""
formulario = AltaPacienteFrom()
#tipoSangre = Sangre.objects.all()
mensaje = "Alta Paciente."
ctx = {'form' : formulario,'msj' : mensaje}

Lucho Flores

unread,
May 30, 2013, 6:58:44 PM5/30/13
to djan...@googlegroups.com
Hola, supongo que tienes problemas con el select para guardar el tipo de sangre, o me equivoco??? porque no sé a cuál select te refieres. De ser ese el caso, en tu fomulario AltaPacienteFrom estás definiendo que tu formulario haga referencia a tu modelo paciente, pero cuando pones el atributo fields, le estás diciendo que sólo se muestre el campo para guardar el tipo de sangre, pero no otros campos que en tu modelo son obligatorios como nombre y dirección, así que chequea si a lo mejor no estás guardando datos que en tu bd son obligatorios y por eso te da el error mencionado,

Hiko hitokiri

unread,
May 31, 2013, 2:06:30 PM5/31/13
to djan...@googlegroups.com
si puedes poner codigo para descargar para hacer pruebas seria mejor ya sea en github o aqui en un comprimido  para que te podamos ayudar mas facil 

Hugo Andrade

unread,
Jun 1, 2013, 3:13:36 PM6/1/13
to djan...@googlegroups.com


Listo!! tenia un error en el html en el cual ya habai definido vacio un select (<select>...</select>)el cual sustituía al select que me genera django como ( { form.select } ) simplemente quite el select que tenia en html dejando el form  de djnago y me lo genero! :) 

Hugo Andrade

unread,
Jun 1, 2013, 3:13:58 PM6/1/13
to djan...@googlegroups.com


Gracias a todos!
Reply all
Reply to author
Forward
0 new messages