最近我开始学习编程,无法解决一个问题。我知道我做错了什么,任何人都可以帮助我。 我有文章模型,通过foreingkey连接到vipusk。 vipusk也通过外键连接到Year模型。最重要的是年份模型。
我在我的数据库中创建了几篇文章,随机安装了vipusks和一些Year。 当我试图直接从数据库获取它我只得到其中一些,我的意思是一年包含几个vipusks,当我试图显示vipusks的数量时,我只有2个。但我知道其中一年包含4个vipusks。我认为问题出在视图的某个地方。但我不知道如何解决它
这是我的viev字段:
def arkchive(request):
latest_year = YearPub.objects.all().order_by('year_alias')
for i in latest_year:
latest_vipusks = Vipusk.objects.filter(vipusk_year=latest_year).order_by('id')
for j in latest_vipusks:
articles = Article.objects.filter(article_vipusk=latest_vipusks).order_by('id')
args = {}
args['years'] = latest_year
args['vipusks'] = latest_vipusks
args['articles'] = articles
return render_to_response('arkchive.html', args)enter code here
这就是我想在模板中得到的内容
{% for year in years %}
{{year.yearpub_int}}
{% for vipusk in vipusks %}
<a class='title_vipusk'>{{vipusk.vipusk_int}}</a>
{% for article in articles %}
<a class='title_article'>{{article.vipusk_name}}</a>
{% endfor%}
{% endfor %}
{% endfor %}
答案 0 :(得分:0)
我猜你要做的是这样的事情:
def arkchive(request):
years = {}
for year in YearPub.objects.all().order_by('year_alias'):
years[year.yearpub_int] = {}
for vipusk in Vipusk.objects.filter(vipusk_year=year).order_by('id'):
years[year.yearpub_int][vipusk_int] = Article.objects.filter(article_vipusk=latest_vipusks).order_by('id')
return render_to_response('arkchive.html', {'years': years})enter code here
模板:
{% for year, vipusks in years.items %}
{{year}}
{% for vipusk, articles in vipusks.items %}
<a class='title_vipusk'>{{vipusk}}</a>
{% for article in articles %}
<a class='title_article'>{{article.vipusk_name}}</a>
{% endfor%}
{% endfor %}
{% endfor %}