Где я должен разместить экземпляр в 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 вашей формы.

Вернуться на верх