Django错误'model'对象不可迭代。

问题描述 投票:0回答:1

我正在按照Django教程进行精益,结果在x处出现了TypeError,我不知道我做错了什么。

这里是模型

class articulos(models.Model):
    nombre = models.CharField(max_length=30)
    seccion = models.CharField(max_length=30)
    precio =  models.IntegerField()

观点如下

from django.shortcuts import render
from django.http import HttpResponse
from GestionPedido.models import articulos

def buscar(request):

    if request.GET["prd"]:
        #mensaje = "Artículo buscado: %r" %request.GET["prd"]
        producto = request.GET["prd"]

        articulo = articulos.objects.filter(nombre__icontains = producto)

        return render(request, "resultadobusqueda.html", {"articulos":articulos, "query":producto})

    else: 
        mensaje = "No has introducido nada %r"

    return HttpResponse(mensaje)

殿在此

<html>

<body>

    <p>Estas buscando: <strong>{{query}}</strong></p>

    {% if articulos %}

        <p>Articulos encomtrados {{articulos|length}} articulos</p>

        <ul>

            {% for articulo in articulos %}
                <li>
                    {{articulos.nombre}}
                </li>

            {% endfor %}

        </ul>>

     {% else %} 

        <p>Articulos no encontrado</p>

    {% endif %}




</body>

</html>

它确实标志着错误 {% for articulo in articulos %}

python django
1个回答
0
投票

你有一个拼写错误,在

{"articulos":articulos, ...

变量名是 articulo 没有's'。你传递的是模型,而不是查询集。


0
投票
articulo = articulos.objects.filter(nombre__icontains = producto)

return render(request, "resultadobusqueda.html", {"articulos":articulos, "query":producto})

你传递的是 "articulos",即模型,而不是 "articulo",即queryset。

© www.soinside.com 2019 - 2024. All rights reserved.