在Django管理后台显示ForeignKey数据
我想在Django的管理后台中,让一个模型的某个属性显示在另一个模型的添加或修改页面上。以下是我的模型:
class Download(model.Model):
task = models.ForeignKey('Task')
class Task(model.Model):
added_at = models.DateTimeField(...)
我不能改变外键的设置,所以不能使用内联(Inlines),当然 fields = ('task__added_at',)
在这里也不管用。
像这种情况,通常的做法是什么呢?(或者说我是不是在过度使用管理后台的功能?)
我已经在使用自定义模板了,如果这是解决办法的话也可以。不过,我更希望能在管理后台的层面上解决这个问题。
1 个回答
13
如果你不需要编辑这个内容,可以把它显示为只读字段:
class DownloadAdmin(admin.ModelAdmin):
readonly_fields = ('task_added_at',)
def task_added_at(self, obj):
return obj.task.added_at