【问题标题】:Django template FOO_set.all returns blankDjango 模板 FOO_set.all 返回空白
【发布时间】:2019-06-02 13:00:35
【问题描述】:

我正在尝试在模型 Salle 上显示由 ForeignKey 相关的模型 Enigme 的值。

这些是类:

class Escape(models.Model):
    name = models.CharField(max_length=100, unique=False)

    def __str__(self):
        return self.name

class Salle(models.Model):
    salle = models.CharField(max_length=100, unique=False)
    escape = models.ForeignKey(Escape, on_delete=models.CASCADE)

    def __str__(self):
        return self.salle


class Enigme(models.Model):
    enigme_name = models.CharField(max_length=100, unique=False)
    salle = models.ForeignKey(Salle, on_delete=models.CASCADE)

    def __str__(self):
        return self.enigme_name

我的视图文件:

def salle_escape(request):
    escape_named = 'Test'
    list_salle = Salle.objects.filter(escape__name=escape_named)
    context = { 
            'escape' : Escape.objects.get(name=escape_named),
            'salle'  : list_salle,
            }

    return render(request, 'chat/salle_escape.html', context)

这是我的模板文件:

<!-- chat/templates/chat/room.html -->
<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8"/>
    <title>Chat Room</title>
</head>
<body>
    <h1>Test</h1>
    <h2>Liste des salles</h2>
    <ul>
        {% for s in salle %}
        <li>{{ s.salle }} </li>
        <ul>
            {% for enigme in s.enigme_set.all %}
            <li>{{ engime.enigme_name }}</li>
            {% endfor %}
        </ul>

        {% endfor %}
    </ul>
</body>
</html>

我得到的是空子弹:

你对我的问题有什么想法吗?

【问题讨论】:

  • 您的Enigme 对象是否有一个不是空字符串的enigme_name
  • 谢谢@WillemVanOnsem,我可以确认你不是空的。如果我在 python shell 中尝试,则会出现 enigme_names。

标签: python html django django-templates django-views


【解决方案1】:
{% for enigme in s.enigme_set.all %}
    <li>{{ engime.enigme_name }}</li>
{% endfor %}

谜!= 谜

你写错了对象的名称

【讨论】:

  • 你是最棒的!让我感到羞耻....非常感谢,我正在寻找这个问题几个小时。非常感谢!
猜你喜欢
  • 2018-12-28
  • 1970-01-01
  • 2012-01-02
  • 2018-08-26
  • 1970-01-01
  • 2017-07-04
  • 2011-08-21
  • 1970-01-01
  • 2016-06-29
相关资源
最近更新 更多