for循环,无法从数据库获取数据,Django

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

我有几个期刊版本,与一些年份相对应。为了从数据库中获取数据,我编写了一个视图

def arkchive(request):

    years = {}
    for year in YearPub.objects.all().order_by('year_alias'):
        years[year.yearpub_int] = {}
        for vipusk in Vipusk.objects.all():
            years[year.yearpub_int][vipusk.vipusk_alias] = Vipusk.objects.filter(vipusk_year=year).order_by('vipusk_alias')

    args = {}
    args.update(csrf(request))
    args['years'] = sorted(years.items())
    return render_to_response('arkchive.html', args)

我创建了一个如下所示的模型:

class Vipusk(models.Model):
    vipusk_int = models.PositiveSmallIntegerField(verbose_name='Номер випуску')
    vipusk_alias = models.SlugField(verbose_name='АЛИАС випуску')
    vipusk_year = models.ForeignKey(YearPub, verbose_name='Випуск/ГОД ')


class Meta:
    ordering = ['vipusk_alias']
    verbose_name = 'Номер випуску'
    verbose_name_plural = u'Номери випусків'

def __str__(self):
    return '№ ({})'.format(self.vipusk_alias)

def __unicode__(self):
    return '№ ({})'.format(self.vipusk_alias)

以及与数据库中的可视化相对应的代码部分

{% for year, vipusks in years %}
    <div class = 'pub_year'>{{year.year_int}}</div>
    {% for vipusk in vipusks %}
        <li class='jurnal_item'><a href='/main/zmist/{{year.year_int}}/{{vipusk.vipusk_alias}}/'>№ {{vipusk.vipusk_id}}({{vipusk.vipusk_alias}})</a></li>
    {% endfor %}
{% endfor %}

但是当我运行应用程序时,我的 html 模板什么也没有显示。请给我提示我哪里错了

django templates for-loop
1个回答
0
投票

我已经找到解决办法了 在视图文件中它应该是

years = {}
    for year in YearPub.objects.all().order_by('year_alias'):
        years[year.yearpub_int] = Vipusk.objects.filter(vipusk_year=year).order_by('id') 
© www.soinside.com 2019 - 2024. All rights reserved.