【发布时间】:2015-01-01 18:05:58
【问题描述】:
我在 Django (1.7) 中定义了 2 个模型。它们如下(简化版):
from django.db import models
from django.utils import timezone
from datetime import timedelta
class ModelA(models.Model):
email_addr = models.EmailField(max_length=100,verbose_name='Email')
class ModelB(models.Model):
my_model = models.ForeignKey(ModelA)
valid_until = models.DateTimeField('valid until', default=timezone.now()+timedelta(days=2))
可以看出,两个模型之间存在 OneToMany 关系。 1 ModelA 可以有一个或多个 ModelB。
在 admin.py 我有以下内容:
class ModelAAdmin(admin.ModelAdmin):
list_display = ('id', 'email_addr')
admin.site.register(ModelA,ModelAAdmin)
我想在我的管理员中为 ModelA 的每条记录显示一个字段,该字段显示最新相关 ModelB 记录的字段 valid_until 的值。比如:
class ModelAAdmin(admin.ModelAdmin):
most_recent_valid_until = // retrieve the related ModelB record with the most recent valid until value //
list_display = ('id', 'email_addr', 'most_recent_valid_until')
例如,假设:
a) ModelA 有 1 条记录,其值为:id:1, email_addr:foo@bar.com
b) ModelB 的 2 条记录与 ModelA 的 id 为 1 的记录相关。它们如下:(id:5, valid_until:25/10/2014), (id:6, valid_until:27/10/2014)。
然后,我希望我的管理员显示如下记录列表:
1 foo@bar.com 27/10/2014
我对 Python 和 Django 很陌生,所以如果我的问题很明显,请见谅。
非常感谢!
【问题讨论】:
标签: python django django-models django-admin