def repositorios_edit(request, repositorio_id): #Usamos el metodo get_object_or_404 donde le pasamos 2 parametos el objeto del modelo y un id # lo guardamos en un objeto, y si no existe retornamos a la pagina de error 404 repositorio = get_object_or_404(Repositorio, pk=repositorio_id) #Si el metodo enviado por el formulario es POST if request.method == 'POST': #Le pasamos los datos del form mas la instancia del objeto capturado en el metodo get_object_or_404 form = RepositorioForm(request.POST, instance=repositorio) #Validamos que los datos enviados se han correctos (campos no vacios, validaciones) if form.is_valid(): #Insertamos en el base de datos el registro actualizado form.save() #retornamos a la vista generic que tiene la lista de paquetes y le pasamos el id return redirect('repositorios_list') #Si los datos no fueron enviados por post else: #Instaciamos un objeto de tipo RepositorioForm y le mostramos el registro #capturado con el metodo get_object_or_404 form = RepositorioForm(instance=repositorio) #Retornamos al template gereric_edit.html y le pasamos el formulario instanciado return render_to_response('info/repositorios_edit.html', {'form': form}, context_instance=RequestContext(request))
def repositorios_create(request): #Si el metodo enviado por el formulario es POST if request.method == 'POST': #Instanciamos un objeto de tipo Repositorio y le pasamos como parametros los elementos #que enviaron por el formulario y lo guardamos en un objeto form = RepositorioForm(request.POST) #Validamos que los datos enviados se han correctos (campos no vacios, validaciones) if form.is_valid(): #Si usamos ModelForm si pasa las validaciones simplemente le decimos que # lo inserte en la base de datos con form.save() ya el metodo hace la instancia por si solo # del modelo pasado y lo inserta form.save() #retornamos a la vista de repositorios return redirect('repositorios_list') #Si los datos no fueron enviados por post else: #Instaciamos un objeto de tipo RepositorioForm form = RepositorioForm() #Retornamos al template generic_create.html y le pasamos el formulario instanciado return render_to_response('info/repositorios_create.html', {'form': form}, context_instance=RequestContext(request))