Django: list_display() 外键
Posted
技术标签:
【中文标题】Django: list_display() 外键【英文标题】:Django: list_display( ) ForeignKey 【发布时间】:2016-01-10 00:20:55 【问题描述】:现在我可以在使用 Click_Data 模型时使用 list_display( ) 来显示列 word 和 click_times。代码如下:
# models.py
class Click_Data(models.Model):
word = models.CharField(max_length=255)
click_times = models.IntegerField(default=0)
class Meta:
ordering = ('word',)
def __unicode__(self):
return self.word
# admin.py
class Click_DataAdmin(admin.ModelAdmin):
fieldsets = [
('Word', 'fields': ['word']),
('Number', 'fields': ['click_times']),
]
list_display = ('word', 'click_times')
但我不知道如何在使用 User_Data 模型(其中如下)。
# models.py
class User_Data(models.Model):
user = models.ForeignKey(User)
click_data = models.ForeignKey(Click_Data)
class Meta:
ordering = ('user',)
def __unicode__(self):
return unicode(self.user)
# admin.py
class User_DataAdmin(admin.ModelAdmin):
fieldsets = [
('User', 'fields': ['user']),
('Word', 'fields': ['click_data']),
]
list_display = ('user', 'click_data')
我不仅要显示'click_data'
中的'word',还要显示'click_times',我该如何实现呢?
【问题讨论】:
您希望将它们作为表格中的两个单独的列,还是仅将它们放在一个列中,例如“试试这个:
class User_DataAdmin(admin.ModelAdmin):
...
list_display = (..., 'get_click_times', 'get_word')
def get_click_times(self, obj):
return obj.click_data.click_times
get_click_times.short_description = 'Click Times'
def get_word(self, obj):
return obj.click_data.word
get_word.short_description = 'Word'
【讨论】:
以上是关于Django: list_display() 外键的主要内容,如果未能解决你的问题,请参考以下文章
django admin编辑被外键关联的主表时支持显示字表记录
Django:如何在 list_display 中包含内联模型字段?
Django:list_display ManyToManyField 排序