Foros del Web » Programando para Internet » Python »

poner un campo con valor fijo en un formulario al rellenarlo.

Estas en el tema de poner un campo con valor fijo en un formulario al rellenarlo. en el foro de Python en Foros del Web. Hola a todos¡¡¡tengo los siguientes modelos en mi aplicacion: models.py: @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código Python: Ver original class RegistroUsuario ( User ) :      comentario ...
  #1 (permalink)  
Antiguo 28/02/2012, 12:17
 
Fecha de Ingreso: febrero-2012
Mensajes: 6
Antigüedad: 12 años, 8 meses
Puntos: 0
poner un campo con valor fijo en un formulario al rellenarlo.

Hola a todos¡¡¡tengo los siguientes modelos en mi aplicacion:

models.py:

Código Python:
Ver original
  1. class RegistroUsuario(User):
  2.  
  3.    comentario=models.TextField(blank=True)
  4.    imagen=models.ImageField(upload_to='usuarios/',blank=True)
  5.    coche=models.CharField(max_length=2,choices=SINO_CHOICES)
  6.    animales=models.CharField(max_length=2,choices=SINO_CHOICES)
  7.    fumador=models.CharField(max_length=2,choices=SINO_CHOICES)
  8.    musica=models.CharField(max_length=2,choices=SINO_CHOICES)
  9.    conversacion=models.CharField(max_length=2,choices=SINO_CHOICES)
  10.  
  11. class Viaje(models.Model):
  12.    usuarioViaje=models.ForeignKey(RegistroUsuario, related_name='+')
  13.    origen=models.CharField(max_length=50)
  14.    destino=models.CharField(max_length=50)
  15.    fechaPublicacion=models.DateField(auto_now_add=True)
  16.    fechaViaje=models.DateTimeField()
  17.    comentarios=models.TextField()
  18.    ofedem=models.CharField(max_length=3,choices=OFDEM_CHOICES)
  19.    idavue=models.CharField(max_length=3,choices=IDAVUE_CHOICES)
  20.    plazasLibres=models.BooleanField()
  21.    precio=models.PositiveSmallIntegerField()
  22.    equipaje=models.CharField(max_length=3,choices=EQUIPAJE_CHOICES)

Y una vez que hago loggin en mi aplicación con un usuario quiero que
el campo usuarioViaje del modelo Viaje al rellenar el formulario sea
el mismo que el correspondiente a RegistroUsuario. Este es mi
formulario:

Código Python:
Ver original
  1. @login_required
  2. def creaViajeForm(request, pID='0'):
  3.    bf = ViajeForm()
  4.    message = ''
  5.    p = get_object_or_404(RegistroUsuario, pk=pID)
  6.    if request.method == 'GET':
  7.        message = 'Completa el formulario y crearas un nuevo viaje %s
  8. ' % p.username
  9.    if request.method == 'POST':
  10.        if request.POST['submit'] == 'Crear':
  11.            bf = ViajeForm(request.POST.copy())
  12.  
  13.            if bf.is_valid():
  14.                try:
  15.                    bf.save()
  16.                    message = 'Nuevo viaje de %s' % p.username
  17.                    return HttpResponseRedirect('/paginausuario/%d/' % p.id)
  18.                except:
  19.                    message = 'Error en la base de datos'
  20.            else:
  21.                message = 'Datos invalidos'
  22.    return render_to_response(
  23.        'crear_viaje.html',
  24.         {'p':p,'bForm':bf, 'message': message})


Lo que pasa a este formulario es q cuando lo voy a rellenar en el
campo usuarioViaje me sale un desplegable con todos los usuarios y lo
q yo quiero es que salga directamente el usuario correspondiente y que
no de la opción de elegir otro. Muchas gracias. Un saludo. : )

Última edición por razpeitia; 28/02/2012 a las 12:43 Razón: resaltado de sintaxis
  #2 (permalink)  
Antiguo 28/02/2012, 13:12
Avatar de razpeitia
Moderador
 
Fecha de Ingreso: marzo-2005
Ubicación: Monterrey, México
Mensajes: 7.321
Antigüedad: 19 años, 8 meses
Puntos: 1360
Respuesta: poner un campo con valor fijo en un formulario al rellenarlo.

Eso lo especificas en el formulario* no en la vista.

No estoy seguro si estas hablando de un formulario de Django o un template. Favor de aclarar esto.
  #3 (permalink)  
Antiguo 28/02/2012, 16:06
 
Fecha de Ingreso: febrero-2012
Mensajes: 6
Antigüedad: 12 años, 8 meses
Puntos: 0
Respuesta: poner un campo con valor fijo en un formulario al rellenarlo.

ya creo que encontre la manera de que me guarde el viaje con el usuario que tengo registrado. Si alguien tiene otra sugerencia que me la diga por favor. Este es el código:

Código:

@login_required
def creaViajeForm(request, pID='0'):
    
    message = ''
    p = get_object_or_404(RegistroUsuario, pk=pID)
    bf = ViajeForm()
    if request.method == 'GET':
        message = 'Completa el formulario y crearas un nuevo viaje %s ' % p.username
    if request.method == 'POST':
        if request.POST['submit'] == 'Crear':
            bf = ViajeForm(request.POST.copy())
            
            if bf.is_valid():
                try:
                    
		    v = bf.save(commit=False)
		    v.usuarioViaje = p
		    v.save()

                    message = 'Nuevo viaje de %s' % p.username
		    return HttpResponseRedirect('/paginausuario/%d/' % p.id)		
                except:
                    message = 'Error en la base de datos'
            else:
                message = 'Datos invalidos'
    return render_to_response(
        'crear_viaje.html',
         {'p':p,'bForm':bf, 'message': message})

Etiquetas: django
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 21:22.