Python 如何使用django中的查询在视图中循环

Python 如何使用django中的查询在视图中循环,python,django,django-templates,django-views,Python,Django,Django Templates,Django Views,在上面的代码中,我得到了products\u page\u all中的所有对象 然后我想遍历这些对象,并存储每个对象的过滤器内容。我只获取字典页面键中筛选器中的最后一个对象。 这是我的模型: def index(request): context_dict = {} products_page_all = ProductsPageAll.objects.all() context_dict['products_page_all'] = products_page

在上面的代码中,我得到了products\u page\u all中的所有对象

然后我想遍历这些对象,并存储每个对象的过滤器内容。我只获取字典页面键中筛选器中的最后一个对象。 这是我的模型:

def index(request):
    context_dict = {}    

    products_page_all = ProductsPageAll.objects.all()
    context_dict['products_page_all'] = products_page_all

    for x in products_page_all:    
        pages = ProductsPageViews.objects.filter(product=x)
        context_dict['pages'] = pages


    home_page = HomePage.objects.all()[:1].get()
    context_dict['home_page'] = home_page

    extras_page_blog = ExtrasPageBlog.objects.all().latest('blog_date')
    context_dict['extras_page_blog'] = extras_page_blog

    extras_page_news_events = ExtrasPageNewsEvents.objects.all().latest('news_or_events_date')
    context_dict['extras_page_news_events'] = extras_page_news_events

    aboutus_team = AboutUsPageTeam.objects.all()
    context_dict['aboutus_team'] = aboutus_team
    # Return a rendered response to send to the client.
    # We make use of the shortcut function to make our lives easier.
    # Note that the first parameter is the template we wish to use.
    return render(request, 'pec/index.html', context_dict)
下面是我的html

class ProductsPageAll(models.Model):
    product_name = models.CharField(max_length=500, unique=True) 
    product_image = models.ImageField(upload_to='img/products')
    product_description = models.CharField(max_length=1000)

    def __unicode__(self):
        return self.product_name
        return self.product_description

class ProductsPageViews(models.Model):
    product = models.ForeignKey(ProductsPageAll)
    product_view_image = models.ImageField(upload_to='img/products/views')
    product_view_content = models.CharField(max_length=500)
    product_view_description = models.CharField(max_length=1000)

    def __unicode__(self):
        return self.product_view_content
        return self.product_view_description
{%页中的页%}
{{page.product{u view\u content}

{{page.product\u view\u description}

{%endfor%}
您的错误在这里:

{% for page in pages %}
            <div class="row text-center">
                <div class="col-sm-4">
                    <img src="{{page.product_view_image.url}}" class="img-responsive" alt="">
                    <h4 class="service-heading">{{page.product_view_content}}</h4>
                    <p class="text-muted">{{page.product_view_description}}</p>
                </div>
            </div>
            {% endfor %}
您在每次迭代中都会覆盖键“pages”,因此键页面上的值将是最后一次迭代。循环属于ProductsGeall的所有页面的一种方法是循环反向关系:

for x in products_page_all:    
    pages = ProductsPageViews.objects.filter(product=x)
    context_dict['pages'] = pages

您能更清楚地了解您正在尝试做什么,以及您希望更改的内容吗?我想遍历products\u page\u all的所有对象,然后使用该对象筛选我的ProductsPageViews模型,并在dictionary中获取该模型的所有对象。如何创建动态字典(创建动态键)来存储页面。
for productpage in products_page_all:
    for page in productpage.productspageviews_set.all:
        #do something with the page object