Неполадка при отображении данных о внешних ключах на экране администратора Django - PullRequest
1 голос
/ 24 сентября 2010

Чтобы отобразить данные посторонних ключей в моем представлении списка администратора, я создал вызываемый элемент:

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

Что является строкой Unicode длямодель EventDate (25 сентября 2010 г.) с некоторыми объектами, сгенерированными django: [< EventDate ______ >]

Если я изменю оператор вызываемого возврата, чтобы попытаться получить только саму дату:

return EvDateObj.event_date 

или

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

представление списка администратора просто показывает:

(None)

Есть мысли?Я не уверен, что делать дальше, потому что я могу получить нужный объект, но не могу получить доступ ни к одному из его свойств, не вызвав результат (None).

1 Ответ

0 голосов
/ 14 января 2011

Вы пробовали:

    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]

Я сам не пробовал, так что надеюсь, что это сработает для вас.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...