我有一张桌子,上面有用户,等级,深蹲,硬拉,台式,清洁,挺举和抢夺。
排名系统将对任何数量的组合进行排序,从仅仅总数量Squated到总数量的压缩和举重到所有五个学科提升的总量。正如您所看到的,有大量可用组合可供用户查看其排名。虽然我还要煞费苦心地将所有这些排名组合添加到我的数据库中,但我已经完成了主要的5即SQ_rank。
在我的视图文件中,我完成了以下操作,其中request.GET获得'SQ','DL','BP','Snatch'或'CJ':
def rankings()
a = ''
for i in request.GET:
a += i
b = a + '_rank'
query_results = UserProfile.objects.all().order_by(a)
rank = b
return render_to_response('registration/rankings.html',{'query_results': query_results, 'rank': rank,}, context_instance=RequestContext(request, processors=[custom_proc]))
现在我想将排名作为我模板中的变量。它将返回一些_rank,例如SQ_rank或DL_rank,它位于我的数据库中。
{% for item in query_results %}
<tr>
<td>{{ item.user }}</td>
<td>{{ items.??? }}</td>
<td>{{ item.SQ }}</td>
<td>{{ item.DL }}</td>
<td>{{ item.BP }}</td>
<td>{{ item.CJ }}</td>
<td>{{ item.Snatch }}</td>
</tr>
{% endfor %}
如何在没有{%ifequal%}}堆加载的情况下执行此操作,以确定当我将它们添加到数据库时可用的所有可变组合?这一切都有意义吗
答案 0 :(得分:0)
首先:
for i in request.GET:
因request.GET是dict而不是列表而无效。如果你的意思是项目。???是查找名称包含在“rank”变量中的item属性,这是我用于此目的:
{{ item|ofKey:rank }}
“ofKey”是自定义模板过滤器。创建一个名为extra.py
的文件,其中包含:
from django import template
register = template.Library()
@register.filter
def ofKey(value, arg):
if value:
return value.get(arg)
else:
return ""
现在将此文件保存在您的某个应用程序目录的“templatetags”子目录中。您需要使用:
{% load extra %}
在您需要它的模板的开头。