【发布时间】:2012-04-19 19:05:03
【问题描述】:
我正在尝试按对象相关外键集中的特定值对 Django 管理列表页面进行排序。
具体来说,在下面的代码中,我希望 ContentAdmin 视图显示按“Twitter Score”排序的所有内容对象的列表(名为“Twitter”的 Score 对象)。
在 django 应用中,我有以下模型:
class Content(models.Model):
body = models.CharField(max_length=564)
title = models.CharField(max_length=64)
class Score(models.Model):
name = models.CharField(max_length=64)
score = models.IntegerField()
content = models.ForeignKey('Content')
在 admin.py 我有以下内容:
class ContentAdmin(admin.ModelAdmin):
list_display = ('title', 'show_twitter_score',)
def show_twitter_score(self, obj):
twitter_score = obj.score_set.get(name='Twitter')
return 'Twitter: ' + str(twitter_score.score)
目标:ContentAdmin 的管理面板显示按“Twitter”分数排序的内容对象
谢谢大家!
【问题讨论】:
-
管理面板是指
admin.py?你有admin.site.register(Content, ContentAdmin)吗? -
我的代码不做排序,它只显示分数
-
是的,通过管理面板,我的意思是 admin.py。刚刚解决了这个问题另外,我已经正确注册了所有模型。
-
听起来很糟糕,但是您是否尝试单击列标题进行排序?
-
@TommasoBarbugli,我希望是我这么笨!不幸的是,单击列标题不适用于定义为函数的列
标签: python django django-admin