2010-09-24 56 views
1

要在我的管理员列表视图中显示外键数据,我创建了一个调用的:问题在Django Admin屏幕显示相关外键数据

def next_date(self): 
    EvDateObj = EventDate.objects.filter(event__id__exact=self.id) 
     .exclude(event_date__lt=datetime.date.today()) 
     .order_by('event_date')[:1] 
    return EvDateObj 

这显示在列表视图:

[<EventDate: 25 September 2010>] 

哪是EventDate模型的unicode字符串(2010年9月25日),其中包含一些django生成的对象东西:[< EventDate ______ >]

如果我修改可调用返回语句以尝试ND刚刚得到的日期本身:

return EvDateObj.event_date 

return EvDateObj.event_date.strftime("%d %B %Y") 

管理员列表视图中只显示:

(None) 

有什么想法?我不确定如何继续,因为我可以获得所需的对象,但无法访问其任何属性而不触发“(无)”结果。

回答

0

你试过:

EvDateObj = EventDate.objects.get(event__id__exact=self.id) 
    .exclude(event_date__lt=datetime.date.today()) 
    .order_by('event_date')[:1] 

objects.filter()总是返回一个QuerySet(类似于Python的列表),即使只有1条结果。 EDateObj.objects.get()将返回一个对象。

或者你可以这样做:

return EvDateObj[0] 

我还没有尝试过自己,所以希望这对你的作品。

相关问题