简体   繁体   English

无法访问Django模板中的属性

[英]Cannot Access Attribute In Django Template

View: 视图:

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

Template: 模板:

{% if Event %}

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

{% else %}

    No Event.

{% endif %}

Model: 模型:

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)

When I load the page it just loads Event Name: . 当我加载页面时,它只会加载Event Name: When I remove the .name attribute it loads the event as it is entered in the db but it won't load any attributes from the object. 当我删除.name属性时,它将加载在数据库中输入的事件,但不会从该对象加载任何属性。 Appreciate any help/advice, thanks. 感谢任何帮助/建议,谢谢。

You should use get instead of filter: 您应该使用get而不是filter:

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

If you want to use filter in templete try this: 如果要在模板中使用过滤器,请尝试以下操作:

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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM