从 django admin list_display 访问,来自一对一表的值
Posted
技术标签:
【中文标题】从 django admin list_display 访问,来自一对一表的值【英文标题】:Access from django admin list_display, a value from a One-To-One table 【发布时间】:2014-01-06 07:47:28 【问题描述】:给定一个模型的一对一扩展,例如 Django User 模型:
class UserProfile(models.Model):
user = models.OneToOneField(User, related_name='profile', unique=True)
avatar = models.ImageField(_('Avatar'))
foo = models.CharField(max_length=100, verbose_name="xxx")
如何在后台显示?
class UserAdmin(admin.ModelAdmin):
list_display = ('email', 'profile__foo' <--NOT WORKING )
一个近似匹配问题是Django Admin: How to display value of fields with list_display from two models which are in oneToOne relation?
【问题讨论】:
【参考方案1】:一般的方法是:
class UseAdmin(admin.ModelAdmin):
list_display = ('email', 'profile_foo')
def profile_foo(self, x):
return x.profile.foo
profile_foo.short_description = 'foo'
这里的x是你正在显示的模型的对象
【讨论】:
如果您希望它是可编辑的列表怎么办?以上是关于从 django admin list_display 访问,来自一对一表的值的主要内容,如果未能解决你的问题,请参考以下文章
Part 7:自定义admin站点--Django从入门到精通系列教程