【问题标题】:for loop, cant get data from database, djangofor循环,无法从数据库中获取数据,django
【发布时间】:2017-03-04 21:13:00
【问题描述】:

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

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 模板什么也没有显示。请给我提示我的错误在哪里

【问题讨论】:

  • 您使用的是什么版本的 django? render_to_response 是一种渲染模板的老方法
  • 我使用的是 1.9.11

标签: django templates for-loop


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-09-18
    • 2020-02-08
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 1970-01-01
    • 1970-01-01
    • 2013-01-18
    相关资源
    最近更新 更多