TransWikia.com

Dos modelos en un solo template Django

Stack Overflow en español Asked by Abiel Arcila on August 3, 2020

Hola de antemano gracias por leerme, a continuación tratare de explicar a detalle mi problema, estoy desarrollando una app donde tengo dos modelos, un que se llama Producto y otro que se llama TamañoPrecio el cual tiene una relación con el modelo Producto de ForeignKey, yo hice un CRUD para el modelo Producto, y mi intención era que luego de crear un producto, me redireccionará a un DetailView() de una instancia del modelo Producto, luego ahi poder crear una instancia para el modelo TamañoPrecio en un mismo template, para eso cree un createView para el segundo modelo "TamañoPrecio" y puse como template de esta vista el template que se genera para el detailview del modelo Producto, bueno el problema es que yo al incluir mi formulario en ese template me da un error con el models que pase en ese template porque al parece me da una especie de conflicto al pasar dos vistas con distintos models a un template (ya he pasado dos vistas mismo template pero con modelos iguales y no he tenido problemas, por eso creo que el conflicto yace en que django no permite hacer lo de pasar dos modelos o, bueno esto supongo yo)

ok ahora pasara las partes del código para que entiendan un poco mas mi problema. Este es mi models.py

introducir la descripción de la imagen aquí

estas son mis dos vistas

introducir la descripción de la imagen aquí

y acá mi formulario adentro del template de la vista generada por el detail
introducir la descripción de la imagen aquí

si alguien tiene información acerca de como pasar solucionar esto o simplemente me quiere aportar algo estoy abierto a opiniones

gracias de ante mano.

One Answer

En tu DetailView, agrega un sistema que valide ese formulario.

Aqui un ejemplo

def post(self, request):
    form = Tuforms(data=request.POST)

    if form.is_valid():
        variable_del_formulario= request.POST.get('variable')
        mi_modelo = Producto.objects.all()
        mi_modelo.variable= variable_del_formulario
        mi_modelo.save()
        msg_txt = """
            <p>Contenido agregado</p>
        """
        messages.success(request, msg_txt)

        return redirect ('nombre_de_url')

Nota: Es mejor que agregues el código y no pongas imágenes

Correct answer by teury diaz on August 3, 2020

Add your own answers!

Ask a Question

Get help from others!

© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP