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

时间:2017-03-04 21:13:00

标签: django templates for-loop

我有几个与一些年相对应的日常修饰。为了从数据库中获取数据,我写了一个视图

def arkchive(请求):

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模板就什么都没显示。请给我一个提示,我的错误在哪里

1 个答案:

答案 0 :(得分: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')