django modeladmin 列表显示
我正在尝试学习Django的官方教程,特别是关于modeladmin的list_display部分:
http://docs.djangoproject.com/en/1.2/intro/tutorial02/#customize-the-admin-change-list
我该如何添加一列,显示每个投票的选项数量呢?
谢谢!
2 个回答
1
添加一个自定义的方法(比如叫做 pcount
),这个方法可以返回某个 Poll
实例的选择数量。然后,你可以把这个方法添加到你的 ModelAdmin
子类中的 list_display
属性里。
class Poll(models.Model):
...
def pcount(self):
return self.choice_set.count()
class PollAdmin(admin.ModelAdmin):
list_display = (<other fields>, 'pcount', )
3
你不需要修改你的模型。要在后台动态计算列,可以在ModelAdmin对象中创建一个函数,这个函数需要一个额外的参数,这个参数就是普通的Poll模型实例。然后写的代码就和在模型中写的一样,这里可以忽略self,因为它没有你想要的内容。
class PollAdmin(admin.ModelAdmin)
list_display = (<other_fields>, 'choice_count')
def choice_count(self, model_instance):
return model_instance.choice_set.count()