Hola de nuevo, ahi va mi problemilla tengo un usuario q tiene varios viajes que ha creado el, y cada viaje creado tiene le opcion de modificar los datos introducidos,
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)