我已经构建了一个小型模板标签,可以查看我的数据库,并根据记录的最受欢迎的奖杯进行计算。
templatetag如下所示:
@register.inclusion_tag('trophies/trophies.html')
def trophies():
return { 'trophies': Trophies.objects.values("specie").annotate(Count("id")).order_by()}
奖杯/ trophies.html
{% for obj in trophies %}
<li><a href="/trophy-room/browse/?specie={{ obj.specie }}">{{ obj.specie }}</a></li>
{% endfor %}
奖杯模型
class Trophies(models.Model):
user = models.ForeignKey(User)
specie = models.ForeignKey(Specie)
物种模型
class Specie(ImageModel):
species = models.CharField(max_length=50, unique=True, verbose_name='Common Name')
正在运行{{ obj.specie }}
会返回ID,而正在运行{{ obj.specie.species }}
则不返回任何内容。
为什么会这样?
答案 0 :(得分:1)
试试这个:
@register.inclusion_tag('trophies/trophies.html')
def trophies():
return { 'trophies': Trophies.objects.values("specie", "specie__species").annotate(Count("id")).order_by()}
在模板中:
{{ obj.specie__species }}
请参阅相关问题:Display Django values() on Foreign Key in template as object instead of its id