Skip to main content
 首页 » 编程设计

python之在模板中显示相关对象的数据之Django

2025年05月04日28sxdcgaq8080

在模板中,我想显示与“源对象”相关的所有对象的数据。

这是我想在文章详情页面上显示的事件模型:

### Models ### 
class EventRecord(models.Model): 
    article = models.ForeignKey(Article, related_name='events') 
    event_date = models.DateField('Event Date') 
    country = models.CharField(blank=True, max_length=100) 
    location = models.CharField(blank=True, max_length=100) 
    actors = models.CharField(blank=True, max_length=100) 
    . 
    . 
    . 
    def __unicode__(self): 
        return self.event_date 

这是我为它写的 View (有效):

### View ### 
def article_detail(request, pk): 
    """ Detail View for articles""" 
    article = get_object_or_404(Article, pk=pk) 
    events = article.events.all() 
 
    return render(request, 'coding/article-detail.html', {'article': article, 
    'events': events}) 
    pass 

此模板也适用,但我只看到 event_date 信息。

### Template ###  
<div> 
<h2>Events</h2> 
{% for event in events %} 
    {{ event }} 
{% endfor %} 
 
</div> 

这是因为__unicode__(self)吗?
我需要做什么才能查看所有事件信息?

非常感谢!

请您参考如下方法:

你是对的,在呈现 {{event}} 时,你只是看到它的表示,你在方法 __unicode__ 中将其定义为 event_date 字段。如果您想查看 EventRecord 的其他字段,只需像这样渲染它们:

{% for event in events %} 
    {{ event.country }} 
    {{ event.location }} 
    . 
    . 
    . 
{% endfor %}