我有一个基于项目列表的IntegerField模型。
LIST = (
(0, 'None'),
(1, 'Male'),
(2, 'Female'),
)
class MyModel(models.Model):
gender = models.IntegerField(choices=LIST, default=0)
some_unimportant_value1 ...
some_unimportant_value2 ...
MyModel类中还有一个函数,如果尚未为性别指定值,则返回False。
def genderHasValue(self):
if self.gender == 0:
return False
在Django Admin区域查看MyModel列表时,我希望能够看到genderHasValue函数的计算结果。例如,MyModel的Django Admin区域可能如下所示:
some_unimportant_value1 some_unimportant_value2 genderHasValue
123 456 N
789 012 Y
这假设some_unimportant_value1行的IntegerField为0,some_unimportant_value2行的IntegerField为1。
可以执行genderHasValue函数吗?
谢谢。
答案 0 :(得分:2)
是的,这可以这样完成:
# admin.py
class MyModelAdmin(admin.ModelAdmin):
list_display = ['some_unimportant_value1', 'some_unimportant_value1', 'genderHasValue']
def genderHasValue(self, obj):
if self.gender == 0:
return False
return True
# The file where you configure your admin
admin.site.register(MyModel, MyModelAdmin)
更新: 在评论中回答你的后续问题:是的,有可能,只需这样:
genderHasValue.short_description = "Gender Has Value"
在您的属性定义
之后