【问题标题】:Cannot Access Attribute In Django Template无法访问 Django 模板中的属性
【发布时间】:2013-06-18 22:18:00
【问题描述】:

查看:

def details(request, id):
    event = Event.objects.filter(id=id)
    return render(request, 'details.html', {'Event' : event})

模板:

{% if Event %}

    <h1>Event Name: {{ Event.name }}</h1>

{% else %}

    No Event.

{% endif %}

型号:

class Event(models.Model):
    name = models.CharField(max_length = 30)
    artist = models.ManyToManyField(Artist)
    venue = models.ForeignKey(Venue)
    event_date = models.DateTimeField('event date')
    on_sale = models.DateTimeField('on sale time')


    def __unicode__(self):
        return unicode(self.name)

当我加载页面时,它只会加载Event Name:。当我删除 .name 属性时,它会加载事件,因为它是在数据库中输入的,但它不会从对象加载任何属性。感谢任何帮助/建议,谢谢。

【问题讨论】:

    标签: django templates model attributes


    【解决方案1】:

    你应该使用 get 而不是 filter:

    event = Event.objects.get(id=id)
    

    如果你想在模板中使用过滤器试试这个:

    {% for item in Event %}
        <h1>Event Name: {{ item.name }}</h1>
    {% empty %}
        No Event.
    {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 2017-05-04
      • 2018-01-17
      • 2013-07-23
      • 1970-01-01
      • 2014-07-31
      • 1970-01-01
      • 2021-04-20
      • 2012-06-05
      • 2012-12-15
      相关资源
      最近更新 更多