esto lo hago con la vista modificarviaje, lo que pasa es q cuando le doy a la opcion de modificar del viaje me sale el formulario pero con los datos de otro viaje, y da igual
al viaje que le de, que el formulario me sale relleno con los mismos datos siempre, es q no se q poner en el for o hacerlo sin for. Muchas gracias. Un saludo
Código:
def modificarviaje(request, pID='0'): f=ViajeForm() message='' p = get_object_or_404(RegistroUsuario, pk=pID) viajes=Viaje.objects.filter(usuarioViaje=p) for v in viajes: #¿?¿?¿?¿???¿¿?¿?¿?¿?¿ if request.method == 'GET': f = ViajeForm(instance=v) message = 'Ahora puedes modificar tu viaje %s ' % p.username if request.method == 'POST': if request.POST['submit'] == 'Actualizar': message = 'Tu viaje se ha actualizado %s.' % p.username f = ViajeForm(request.POST.copy(), instance=v) if f.is_valid(): try: f.save() message += ' OK' return HttpResponseRedirect('/crearviaje/%d/' % p.id) except: message = 'Error al actualizar' else: message += ' Invalido' return render_to_response('modificar_viaje.html',{'p':p,'cForm':f,'message': message,'v':v}) models.py class RegistroUsuario(User): comentario=models.TextField(blank=True) imagen=models.ImageField(upload_to='usuarios/',blank=True) coche=models.CharField(max_length=2,choices=SINO_CHOICES) animales=models.CharField(max_length=2,choices=SINO_CHOICES) fumador=models.CharField(max_length=2,choices=SINO_CHOICES) musica=models.CharField(max_length=2,choices=SINO_CHOICES) conversacion=models.CharField(max_length=2,choices=SINO_CHOICES) class Viaje(models.Model): usuarioViaje=models.ForeignKey(RegistroUsuario, related_name='+') origen=models.CharField(max_length=50) destino=models.CharField(max_length=50) fechaPublicacion=models.DateField(auto_now_add=True) fechaViaje=models.DateTimeField() comentarios=models.TextField() ofedem=models.CharField(max_length=3,choices=OFDEM_CHOICES) idavue=models.CharField(max_length=3,choices=IDAVUE_CHOICES) plazasLibres=models.BooleanField() precio=models.PositiveSmallIntegerField() equipaje=models.CharField(max_length=3,choices=EQUIPAJE_CHOICES)