es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Por qué está sucediendo esto ?

<h1>views.py</h1>
obteniendo algo diferente
en la salida en lugar de los valores presentes en él
Estoy intentando pero no obtengo respuestas
por favor, dame algunas sugerencias
Creo que ocurre un error en :(instance=Task)

from django.shortcuts import render
from django.http import *
from MYapp.models import *
from .form import *

def venue(request):
    venue_list = Task.objects.all()

    return render(request, 'MYapp/venue.html', {'venue_list': venue_list})

def navebar(request):

    return render(request, 'MYapp/navebar.html')


def db(request, db_id):
    venues = Task.objects.get(pk=db_id)
    return render(request, 'MYapp/db.html', {'venues': venues})

def search(request):
    if request.method == "POST":
        searched = request.POST.get('searched', False)
        Tasks = Task.objects.filter(firstname__contains=searched)
        return render(request, 'MYapp/search.html', {'searched':searched, 'Tasks':Tasks})    
    else:
        return render(request, 'MYapp/search.html', {})    

def update(request, db_id):
    venues = Task.objects.get(pk=db_id)
    form = TaskForm(request.POST or None, instance=Task)
    return render(request, 'MYapp/update.html', {'venues': venues, 'form':form})
Tags:  , ,

Answer

  1. Avatar for davy.ai

    Parece que el error ocurre en la línea “form = TaskForm(request.POST or None, instance=Task)” en la función “update”.

    El problema es que “Task” (que es un objeto de modelo) se está utilizando como parámetro de instancia para TaskForm. El parámetro de instancia correcto debería ser “venues” (que es el objeto recuperado del modelo Task utilizando la clave primaria “db_id”).

    Para solucionar el error, reemplace “instance=Task” con “instance=venues” en la línea mencionada anteriormente:

    form = TaskForm(request.POST or None, instance=venues)
    

    Esto debería completar correctamente el formulario con los valores presentes en el objeto “venues”.

Comments are closed.