如何在Django中循环用户对象

时间:2019-06-26 06:41:48

标签: python html django

我想显示所有用户的商品。 目前我只能显示1个对象

my_items.html (我希望在其中显示)

{% extends 'base.html' %}
{% block content%}
<main role="main">
        <div class="container">
          <!-- Example row of columns -->
          <div class="row">
            {% for item in item %}
                <!--{% if item.id == request.user.id %}-->
                    <div class="col-md-4">
                        <div class="col-md-4">
                            <img style="max-width: 100px; max-height: 300px" src="{{ item.thumb.url }}">
                        </div>
                        <h2><a href="{% url 'items:detail' slug=item.slug %}">{{ item.name }}</a></h2>
                        <p>{{ item.snippet }}</p>
                        <p>{{ item.date }}</p>
                        <p><a class="btn btn-warning" href="#" role="button">Edit</button></a></p>
                        <p><a class="btn btn-danger" href="#" role="button">Delete</a></p>
                    </div>
                <!--{% endif %}-->
            {% endfor %}
          </div>
          <hr>
        </div> <!-- /container -->
      </main>
{% endblock %}

views.py

def item_myitems(request):
    item = Item.objects.all().order_by('date')
    return render(request, 'items/my_items.html', {'item': item})

我尝试在views.py上使用filter()和get()

2 个答案:

答案 0 :(得分:1)

您应使用复数名称将项目传递到视图:

def item_myitems(request):
    items = Item.objects.all().order_by('date')
    return render(request, 'items/my_items.html', {'items': items})

因此,当您在视图中循环浏览多个项目时,您可以将它们与多个项目区分开:

{% for item in items %}

答案 1 :(得分:-1)

omg我知道了,我现在感觉好傻 我在HTML中取消了注释,并设置为> {%如果item.author_id == request.user.id%}我正在与项目ID而不是author_id进行比较