我有几个期刊版本,与一些年份相对应。为了从数据库中获取数据,我编写了一个视图
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 模板什么也没有显示。请给我提示我哪里错了
我已经找到解决办法了 在视图文件中它应该是
years = {}
for year in YearPub.objects.all().order_by('year_alias'):
years[year.yearpub_int] = Vipusk.objects.filter(vipusk_year=year).order_by('id')