【问题标题】:How are specific objects accessed within a collection within a Django template?如何在 Django 模板的集合中访问特定对象?
【发布时间】:2013-01-16 02:31:29
【问题描述】:

型号:

class Panel(models.Model):
loc = models.IntegerField()
title = models.CharField(max_length=200)

def __unicode__(self):
    return self.title

模板由视图中的 Panel 实例提供:

def index(request):
return render_to_response('application/index.html', 
                          {"DEBUG": True,
                           "panels": Panel.objects.all() },
                          context_instance=RequestContext(request))

模板尝试访问特定模型实例,如下所示:

{% with panel = panels[1] %}
...presentation logic....
{% endwith %}

目前这导致

/appplicatino/ 处的模板语法错误 u'with' 至少需要一个变量赋值

【问题讨论】:

标签: python django


【解决方案1】:

您可以在模板中使用panels.1 访问面板,如下所示:

{% with panel=panels.1 %}
   ...
{% endwith %}

【讨论】:

  • 去掉赋值前后的空格是正确的。
  • 感谢您的提醒 - 我对 with 标签不是很熟悉。我更新了答案。
  • 您在哪里找到关于 .# 参考的文档?
  • 赋值前后的空格应该去掉。顺便说一句,我遇到了同样的问题。
【解决方案2】:

也许你可以这样做:

list(Panel.objects.all())

在您的控制器中,然后在模板中您可以这样做:

{% for panel in panels %}
    <!-- your code here -->
{% endfor %}

【讨论】:

  • for 标签与被实例化的模型一起工作,只是 Panel.objects.all() 我也试过 panel.get(loc=1)...
  • 我的问题是关于从集合中检索特定实例的方法。面板中的面板在没有 list() 方法的情况下工作
猜你喜欢
  • 2012-12-28
  • 2011-06-05
  • 2021-01-06
  • 1970-01-01
  • 2012-07-02
  • 2018-09-16
  • 2017-05-28
  • 2015-07-09
  • 1970-01-01
相关资源
最近更新 更多