django templatetags 不返回正确的数据

发布于 2024-10-18 12:11:39 字数 956 浏览 1 评论 0原文

我构建了一个小型模板标签,它可以查看我的数据库并根据记录的最受欢迎的奖杯进行计算。

templatetag 如下所示:

@register.inclusion_tag('trophies/trophies.html')
def trophies():
    return { 'trophies': Trophies.objects.values("specie").annotate(Count("id")).order_by()}

tropies/tropies.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)

Specie 模型

class Specie(ImageModel):
    species = models.CharField(max_length=50, unique=True, verbose_name='Common Name')

运行 {{ obj. specie }} 返回 id,运行 {{ obj.specie.species }} 不返回任何内容。

为什么会发生这种情况?

I've built a small templatetag that looks towards my DB and makes a calculation based on the most popular trophies logged.

templatetag looks as follows:

@register.inclusion_tag('trophies/trophies.html')
def trophies():
    return { 'trophies': Trophies.objects.values("specie").annotate(Count("id")).order_by()}

trophies/trophies.html

{% for obj in trophies %}
    <li><a href="/trophy-room/browse/?specie={{ obj.specie }}">{{ obj.specie }}</a></li>
{% endfor %}

trophy model

class Trophies(models.Model):
    user = models.ForeignKey(User)
    specie = models.ForeignKey(Specie)

Specie model

class Specie(ImageModel):
    species = models.CharField(max_length=50, unique=True, verbose_name='Common Name')

running {{ obj.specie }} returns the id, and running {{ obj.specie.species }} returns nothing.

Why does this happen?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

用心笑 2024-10-25 12:11:39

试试这个:

@register.inclusion_tag('trophies/trophies.html')
def trophies():
    return { 'trophies': Trophies.objects.values("specie", "specie__species").annotate(Count("id")).order_by()}

在模板中:

{{ obj.specie__species }}

查看相关问题:将模板中外键上的 Django 值()显示为对象而不是其 id

Try this:

@register.inclusion_tag('trophies/trophies.html')
def trophies():
    return { 'trophies': Trophies.objects.values("specie", "specie__species").annotate(Count("id")).order_by()}

And in template:

{{ obj.specie__species }}

See related question: Display Django values() on Foreign Key in template as object instead of its id

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文