def edit(request, carrera_id): """ Edición de los datos de una carrera. """ carrera = Carrera.objects.get(pk=carrera_id) estado_actual_id = carrera.estado.id if request.method == 'POST': form = CarreraForm(request.POST, instance=carrera, initial={'estado': estado_actual_id}) if form.is_valid(): carrera = form.save(commit=False) "Cambiar el estado?" if int(request.POST['estado']) is not estado_actual_id: carrera.estado = EstadoCarrera.objects.get(pk=request.POST['estado']) carrera.save() carrera.registrar_estado() else: # Guardar directamente carrera.save() form.save_m2m() # Guardo las relaciones - https://docs.djangoproject.com/en/1.2/topics/forms/modelforms/#the-save-method request.set_flash('success', 'Datos actualizados correctamente.') else: request.set_flash('warning', 'Ocurrió un error actualizando los datos.') else: form = CarreraForm(instance=carrera, initial={'estado': estado_actual_id}) return my_render(request, 'titulos/carrera/edit.html', { 'form': form, 'carrera': carrera, })
def create(request): import datetime if request.method == 'POST': form = CarreraForm(request.POST) if form.is_valid(): carrera = form.save(commit=False) carrera.estado = EstadoCarrera.objects.get(nombre=EstadoCarrera.VIGENTE) carrera.save() form.save_m2m() # Guardo las relaciones - https://docs.djangoproject.com/en/1.2/topics/forms/modelforms/#the-save-method carrera.registrar_estado() request.set_flash('success', 'Datos guardados correctamente.') # redirigir a edit return HttpResponseRedirect(reverse('carreraEdit', args=[carrera.id])) else: request.set_flash('warning', 'Ocurrió un error guardando los datos.') else: form = CarreraForm() form.fields['estado'].queryset = EstadoCarrera.objects.filter(nombre=EstadoCarrera.VIGENTE) return my_render(request, 'titulos/carrera/new.html', { 'form': form, 'is_new': True, })