Где я должен разместить экземпляр в django?
Я модифицирую таблицу с помощью хранимых процедур, я создал экземпляр, но мне нужно вызвать его внутри запроса, где я должен поместить экземпляр?
def modificartarea(request, id):
tarea = get_object_or_404(Tarea, id=id)
data = {
'tarea': CrearTareaForm(instance=tarea)
}
if request.method=="POST":
if request.POST.get('nombre') and request.POST.get('descripcion') and request.POST.get('inicio') and request.POST.get('termino') and request.POST.get('repetible') and request.POST.get('activo') and request.POST.get('estado') and request.POST.get('creador') and request.POST.get('tarea_anterior'):
tareaupdate= Tarea()
tareaupdate.nombre=request.POST.get('nombre')
tareaupdate.descripcion=request.POST.get('descripcion')
tareaupdate.inicio=request.POST.get('inicio')
tareaupdate.termino=request.POST.get('termino')
tareaupdate.repetible=request.POST.get('repetible')
tareaupdate.activo=request.POST.get('activo')
tareaupdate.estado=EstadoTarea.objects.get(pk=(request.POST.get('estado')))
tareaupdate.creador=Empleado.objects.get(rut=(request.POST.get('creador')))
tareaupdate.tarea_anterior=Tarea(pk=(request.POST.get('tarea_anterior')))
cursor=connection.cursor()
cursor.execute("call SP_modificar_tarea('"+tareaupdate.nombre+"','"+tareaupdate.descripcion+"', '"+tareaupdate.inicio+"', '"+tareaupdate.termino+"', '"+tareaupdate.repetible+"', '"+tareaupdate.activo+"', '"+str(tareaupdate.estado.id)+"', '"+str(tareaupdate.creador.rut)+"', '"+str(tareaupdate.tarea_anterior.id)+"')")
messages.success(request, "La tarea "+tareaupdate.nombre+" se edito correctamente ")
return render(request, 'app/modificartarea.html', data)
else:
return render(request, 'app/modificartarea.html', data)
Скорее всего, вы хотите отфильтровать его на основе чего-то уникального из запроса на пост (pk или id, возможно). Если нет, просто поместите операторы if внутрь querysearch, а затем используйте его на форме. Я предполагаю, что у вас уже есть id, основанный на вашей функции, поэтому вы должны попробовать что-то вроде:
tarea = Tarea.objects.get(pk=id)
tareaupdate = ClearTareaForm(request.POST, instance=tarea)
Кроме того, вам не нужно использовать так много случаев, если вам нужны все поля из вашей модели. Вы можете исключить ненужные вам поля с помощью exclude = ['nombre', 'inicio']
в классе Meta
вашей формы.