在Django Admin屏幕中显示相关外键数据时出现问题

时间:2010-09-24 13:45:46

标签: django-admin

要在我的管理列表视图中显示foreignkey数据,我创建了一个callable:

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 ______ >]

如果我修改可调用的return语句以尝试获取日期本身:

return EvDateObj.event_date 

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

管理员列表视图只显示:

(None)

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

1 个答案:

答案 0 :(得分: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 List),即使只有一个结果。 EDateObj.objects.get()将返回一个对象。

或者你可以这样做:

return EvDateObj[0]

我自己没试过,所以希望这适合你。