def Registro(request,plan):
if request.method == 'POST':
form = RegistroUsuario(request.POST)
form2 = RegistroEmpresa(request.POST)
form3= RegistroCamion(request.POST)
if form.is_valid() and form2.is_valid() :
registro = form.cleaned_data.get('tipo_de_cliente')
nombre = form.cleaned_data.get('nombre')
telefono_celular = form.cleaned_data.get('telefono_celular')
rif = form.cleaned_data.get('rif')
correo = form.cleaned_data.get('correo')
contraseña = form.cleaned_data.get('contraseña')
cliente = Usuario(tipo_de_cliente=registro, carga_de_pila='10',tipo_de_cuenta=plan,nombre=nombre,telefono_celular=telefono_celular,rif=rif,correo=correo,contraseña=contraseña)
cliente.empresa = form2.save()
cliente.camiones= form3.save()
cliente.save()
return redirect('Completado')
else:
form = RegistroUsuario
form2 = RegistroEmpresa
form3 = RegistroCamion
return render(request, 'registro/PlanGratuito.html', {'form': form,'form2':form2,'form3':form3})
esta es la función de mi vista la cual consiste en tomar los valores de mi formulario y hace un redirect a otra página
Cual es el problema, que cuando intento darle submit a mi formulario se refresca la página como si no tuviera ninguna acción
y otras veces si registra la información. He pensado que puede ser algún tema de sincronización de la página con la base de datos
ya que al darle refresh a la pagina si me almacena la información en la base de datos.
Gracias espero su pronta respuesta
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezue...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
class Empresa(models.Model):
id = models.AutoField(primary_key=True, unique=True)
nombre = models.CharField(max_length=100, blank=True, null=True)
actividad = models.CharField(max_length=200, blank=True, null=True)
sector_economico = models.CharField(max_length=200, blank=True, null=True)
direccion = models.CharField(max_length=200, blank=True, null=True)
telefono = models.IntegerField(null=True)
rif = models.CharField(max_length=200, blank=True, null=True)
cantidad_de_trabajadores = models.CharField(max_length=200, blank=True, null=True)
representante = models.CharField(max_length=200, blank=True, null=True)
contacto_de_represnetante = models.CharField(max_length=200, blank=True, null=True)
correo = models.EmailField(max_length=200, blank=True, null=True,unique=True)
pagina_web = models.URLField(max_length=200, blank=True, null=True)
ciudades_donde_comercia = models.CharField(max_length=200, blank=True, null=True)
fecha_de_registro = models.DateField(auto_now_add=True)
def __str__(self):
return '{}'.format(self.nombre)
class Camion(models.Model):
id = models.AutoField(primary_key=True, unique=True)
capacidad_de_carga = models.IntegerField(null=True)
marca = models.CharField(max_length=50,blank=True,null=True)
modelo = models.CharField(max_length=50,blank=True,null=True)
version = models.CharField(max_length=50,blank=True,null=True)
año = models.DateField(blank=True,null=True)
placa = models.CharField(max_length=50,blank=True,null=True)
carroceria = models.CharField(max_length=500,blank=True,null=True)
altura = models.IntegerField(blank=True,null=True)
color = models.CharField(max_length=20,blank=True,null=True)
premio_1 = models.CharField(max_length=72,blank=True,null=True)
premio_2 = models.CharField(max_length=72,blank=True,null=True)
premio_3 = models.CharField(max_length=72,blank=True,null=True)
premio_4 = models.CharField(max_length=72,blank=True,null=True)
premio_5 = models.CharField(max_length=72,blank=True,null=True)
fecha_de_registro = models.DateField(blank=True,null=True)
def __str__(self):
return '{}'.format(self.modelo)
class Usuario(models.Model):
id = models.AutoField(primary_key=True,unique=True)
nombre = models.CharField(max_length=50,blank=True,null=True)
tipo_de_cliente = models.CharField(max_length=100,null=True,blank=True)
ciudad = models.CharField(max_length=50, blank=True, null=True, unique=True)
cedula = models.CharField(max_length=50,blank=True,null=True, unique=True)
contraseña = models.CharField(max_length=50,blank=True,null=True)
direccion_de_residencia = models.TextField(max_length=50,blank=True,null=True)
telefono_fijo = models.IntegerField(null=True,blank=True)
telefono_celular = models.IntegerField(null=True,blank=True)
fecha_de_nacimiento = models.DateField(null=True,blank=True)
rif = models.CharField(max_length=50,blank=True,null=True, unique=True)
sexo = models.CharField(max_length=50,blank=True,null=True)
correo = models.EmailField(blank=True,null=True,unique=True)
foto = models.ImageField(upload_to='photos',blank=True,null=True)
profesion = models.CharField(max_length=50, blank=True, null=True)
nivel_educativo = models.CharField(max_length=50, blank=True, null=True)
cuentas_bancarias = models.CharField(max_length=50, blank=True, null=True)
fecha_de_registro = models.DateField(auto_now_add=True)
camiones = models.ForeignKey(Camion, null=True, blank=True, on_delete=models.CASCADE)
tipo_de_cuenta = models.CharField(max_length=30)
twitter = models.CharField(max_length=50, blank=True, null=True)
facebook = models.CharField(max_length=50, blank=True, null=True)
carga_de_pila = models.IntegerField(null=True)
reputacion = models.IntegerField(null=True)
porcentaje_de_registro = models.IntegerField(null=True)
# INFORMACIÓN LABORAL
empresa = models.ForeignKey(Empresa,max_length=200, blank=True, null=True, on_delete=models.CASCADE)
def __str__(self):
return '{}'.format(self.tipo_de_cliente)
def __unicode__(self):
return self.tipo_de_cliente
form.py
class RegistroUsuario(forms.ModelForm):
class Meta:
model = Usuario
fields = [
'tipo_de_cliente',
"nombre",
"telefono_celular",
"rif",
# "fecha_de_nacimiento",
"correo",
"contraseña",
]
labels = {
'tipo_de_cliente': '',
"nombre":'',
"telefono_celular":'',
"rif": '',
#"fecha_de_nacimiento":'',
"correo":'',
"contraseña":'',
}
widgets = {
'tipo_de_cliente': forms.Select(choices=CLIENTES_CHOICES, attrs={'class': 'form-control'}),
"nombre": forms.TextInput(attrs={'class': 'form-control','placeholder':'Nombre Completo'}),
"telefono_celular": forms.TextInput(attrs={'class': 'form-control','placeholder':'Teléfono Celular'}),
"rif": forms.TextInput(attrs={'class': 'form-control','placeholder':'RIF'}),
#"fecha_de_nacimiento": forms.DateInput(attrs={'class': 'form-control','placeholder':'Fecha de Nacimiento'}),
"correo": forms.EmailInput(attrs={'class': 'form-control','placeholder':'Correo Electronico'}),
"contraseña":forms.PasswordInput(attrs={'class': 'form-control','placeholder':'Contraseña'}),
}
class RegistroCamion(forms.ModelForm):
class Meta:
model = Camion
fields = [
"modelo",
"marca",
"carroceria",
"placa"
]
labels = {
"modelo" : '',
"marca" : '',
"carroceria":'',
"placa":''
}
widgets = {
"modelo": forms.TextInput(attrs={'class': 'form-control','placeholder':'Modelo'}),
"marca": forms.TextInput(attrs={'class': 'form-control','placeholder':'Marca'}),
"carroceria": forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Carroceria'}),
"placa": forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Placa'}),
}
class RegistroEmpresa(forms.ModelForm):
class Meta:
model = Empresa
fields = [
"actividad",
"rif"
]
labels ={
"actividad":'',
"rif":'',
}
widgets = {
"actividad": forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'Actividad o Razon Social'}),
"rif": forms.TextInput(attrs={'class': 'form-control', 'placeholder': 'RIF'}),
}disculpa si es algo extenso mi código siempre intento mejorarlo a medida de que voy aprendiendo, no he usado vistas basadas en clases ya que necesitopasar una variable de una página a otra como se especifica en mi función
def Registro(request,plan):if request.method == 'POST':
form = RegistroUsuario(request.POST)
form2 = RegistroEmpresa(request.POST)
form3= RegistroCamion(request.POST)
if form.is_valid() and form2.is_valid() :
registro = form.cleaned_data.get('tipo_de_cliente')
nombre = form.cleaned_data.get('nombre')
telefono_celular = form.cleaned_data.get('telefono_celular')
rif = form.cleaned_data.get('rif')
correo = form.cleaned_data.get('correo')
contraseña = form.cleaned_data.get('contraseña')
cliente = Usuario(tipo_de_cliente=registro, carga_de_pila='10',tipo_de_cuenta= plan
Por otra parte se generan 3 form ya que uno depende dos un foreignkey necesarios para guardarlo en otro lado y llegue a pensar a pensar que puede ser algún problema con Jquery ya que los 3 formularios están dentro de un form y los efecto de Jquery es del tipo Wizard form dándole efectos hide a los botones y esection de los formulario para que sea un formulario paso por paso
Gracias por los consejos, espero su pronta respuesta
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/python-venezuela/bBu7ifEu6es/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezue...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Has recibido este mensaje porque estás suscrito a un tema del grupo "Python Venezuela" de Grupos de Google.--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/python-venezuela/bBu7ifEu6es/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a python-venezue...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezue...@googlegroups.com.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezue...@googlegroups.com.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Has recibido este mensaje porque estás suscrito a un tema del grupo "Python Venezuela" de Grupos de Google.--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/python-venezuela/bBu7ifEu6es/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/python-venezuela/bBu7ifEu6es/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezue...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Has recibido este mensaje porque estás suscrito a un tema del grupo "Python Venezuela" de Grupos de Google.--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/python-venezuela/bBu7ifEu6es/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a python-venezue...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezue...@googlegroups.com.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezue...@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/python-venezuela/bBu7ifEu6es/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a python-venezue...@googlegroups.com.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezue...@googlegroups.com.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
Has recibido este mensaje porque estás suscrito a un tema del grupo "Python Venezuela" de Grupos de Google.--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/python-venezuela/bBu7ifEu6es/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/python-venezuela/bBu7ifEu6es/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito al grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.
Para acceder a más opciones, visita https://groups.google.com/d/optout.
--
Este es un mensaje del foro Python de Venezuela - http://www.python.org.ve
Para suscripciones y retiros: http://goo.gl/ug9by
---
Has recibido este mensaje porque estás suscrito a un tema del grupo "Python Venezuela" de Grupos de Google.
Para cancelar la suscripción a este tema, visita https://groups.google.com/d/topic/python-venezuela/bBu7ifEu6es/unsubscribe.
Para cancelar la suscripción a este grupo y a todos sus temas, envía un correo electrónico a python-venezuela+unsubscribe@googlegroups.com.