【发布时间】:2014-06-10 12:49:21
【问题描述】:
我想在 django admin 中为自定义模型字段提供排序功能。
代码类似
class MyModel(models.Model):
first_name = models.CharField()
last_name = models.CharField()
def most_recent_mailing_date(self):
""" Return the most recent mailing date """
mailingHistories = self.mailinghistory_set.all()
if len(mailingHistories) != 0:
today = datetime.date.today()
mostRecentHistory = None
diff = -1
for mailingHistory in mailingHistories:
if mailingHistory.mailing_date < today and (diff == -1 or (today - mailingHistory.mailing_date) < diff):
mostRecentHistory = mailingHistory
diff = today - mostRecentHistory.mailing_date
if mostRecentHistory is None:
return "No Mailing History"
else:
return mostRecentHistory.mailing_date
else:
return "No Mailing History"
most_recent_mailing_date.admin_order_field = 'self.most_recent_mailing_date'
我要订购的字段是 most_recent_mailing_date。 这是一个自定义字段。 有可能吗?
提前致谢!
【问题讨论】:
-
从 Django 2.1 开始,您可以使用表达式按 admin_order_by 中的自定义/非 DB 字段进行排序,但我不明白该怎么做!不确定此评论是否会使这更相关,因为 Django 2+ 仅在 Python 3+ 上运行...
标签: python django python-2.7 django-admin