要在我的管理列表视图中显示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)
有什么想法?我不确定如何继续,因为我可以获得所需的对象,但不能在不触发“(无)”结果的情况下访问其任何属性。
答案 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]
我自己没试过,所以希望这适合你。