Ver Mensaje Individual
  #1 (permalink)  
Antiguo 29/07/2015, 01:24
letni
 
Fecha de Ingreso: octubre-2008
Mensajes: 276
Antigüedad: 16 años, 1 mes
Puntos: 1
Establecer valor en campo de modelo desde views.py y no funciona HttpResponseRedirect

Hola,

Tengo una aplicación web Django donde he creado un formulario usando ModelForm, hay un campo del modelo que lo excluyo en forms.py pues no quiero que aparezca en pantalla, sin embargo desde views.py le establezco un valor, pero al hacerlo no funciona HttpResponseRedirect.

Adjunto el código fuente de la función que me da problemas.

Primero el código original, donde no se establece ningún valor, en este caso el redirect funciona perfectamente:

Código Python:
Ver original
  1. def Item_create(request):
  2.     context = {'next': '/Item/create/'}
  3.     form = context['form'] = ItemForm(request.POST or None)
  4.  
  5.     if not form.is_valid():
  6.         return render(request, 'Item-edit.html', context)
  7.  
  8.     Item_name = request.POST['Item_name']
  9.     if Item.objects.filter(Item_name=Item_name).exists():
  10.         context['messages'] = "Item '{}' already exists".format(item)
  11.         return render(request, 'Item-edit.html', context)
  12.  
  13.     Item(**form.cleaned_data).save()
  14.     return HttpResponseRedirect("/Item/list/")

Ahora el código modificado, donde se establece un valor para el campo test, en este caso el redirect no funciona:

Código Python:
Ver original
  1. def Item_create(request):
  2.     context = {'next': '/Item/create/'}
  3.     form = context['form'] = ItemForm(request.POST or None)
  4.  
  5.     if not form.is_valid():
  6.         return render(request, 'Item-edit.html', context)
  7.  
  8.     item = form.save(commit=False)
  9.     item.test = datetime.datetime.now()
  10.     item.save()
  11.  
  12.     Item_name = request.POST['Item_name']
  13.     if Item.objects.filter(Item_name=Item_name).exists():
  14.         context['messages'] = "Item '{}' already exists".format(item)
  15.         return render(request, 'Item-edit.html', context)
  16.  
  17.     Item(**form.cleaned_data).save()
  18.     return HttpResponseRedirect("/Item/list/")

Muchas gracias.
__________________
Uso Apache 2.2 con PHP 5.5.9 y MySQL 5.1
Uso Eclipse IDE for Java Developers, Version: Mars.1 Release (4.5.1), Build id: 20150924-1200 para programar en Java bajo Windows

Última edición por letni; 29/07/2015 a las 01:34