如何在django admin中获取自定义列的总和?
我有这个管理员如何在django admin中获取自定义列的总和?,django,django-models,django-views,django-templates,django-admin,Django,Django Models,Django Views,Django Templates,Django Admin,我有这个管理员 class UserMemberAdmin(AdminImageMixin, BaseUserAdmin): """User Member.""" change_list_template = "admin/ggbeats/user_member/change_list.html" list_display = ('username', 'email', 'get_member
class UserMemberAdmin(AdminImageMixin, BaseUserAdmin):
"""User Member."""
change_list_template = "admin/ggbeats/user_member/change_list.html"
list_display = ('username', 'email', 'get_member_gems_balance', 'gems_transaction_link', 'topup_payment_link', 'date_joined', 'is_staff')
ordering = ['-date_joined']
search_field = ['username', 'email']
fieldsets = (
(None, {'fields': ('email', 'username', 'password')}),
(_('Personal info'), {
'fields': ('first_name', 'last_name', 'phone_number', 'birth_date', 'gender', 'picture',)
}),
(_('Game info'), {
'fields': ('game_id', 'nickname', 'is_gamer', 'is_alert', )
}),
(_('Permissions'), {
'classes': ('collapse',),
'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions', 'role'),
}),
(_('Important dates'), {
'classes': ('collapse',),
'fields': ('last_login', 'date_joined', 'confirmed_at')
}),
)
def get_member_gems_balance(self, obj):
"""Get member gems balance."""
return gems_transaction_services.get_member_gems_balance(obj)
get_member_gems_balance.short_description = 'GEMS'
我将这样的自定义列添加到此管理员
class UserMemberAdmin(AdminImageMixin, BaseUserAdmin):
"""User Member."""
change_list_template = "admin/ggbeats/user_member/change_list.html"
list_display = ('username', 'email', 'get_member_gems_balance', 'gems_transaction_link', 'topup_payment_link', 'date_joined', 'is_staff')
ordering = ['-date_joined']
search_field = ['username', 'email']
fieldsets = (
(None, {'fields': ('email', 'username', 'password')}),
(_('Personal info'), {
'fields': ('first_name', 'last_name', 'phone_number', 'birth_date', 'gender', 'picture',)
}),
(_('Game info'), {
'fields': ('game_id', 'nickname', 'is_gamer', 'is_alert', )
}),
(_('Permissions'), {
'classes': ('collapse',),
'fields': ('is_active', 'is_staff', 'is_superuser', 'groups', 'user_permissions', 'role'),
}),
(_('Important dates'), {
'classes': ('collapse',),
'fields': ('last_login', 'date_joined', 'confirmed_at')
}),
)
def get_member_gems_balance(self, obj):
"""Get member gems balance."""
return gems_transaction_services.get_member_gems_balance(obj)
get_member_gems_balance.short_description = 'GEMS'
现在,我想在{%block result\u list%}{{block.super}}gems中添加我的自定义列“get\u member\u gems\u balance”的总数:{{cl.gems\u count}{%endblock%}
fromchange\u list.html
我在管理中创建这个
class MyChangeList(ChangeList):
def get_results(self, *args, **kwargs):
super(MyChangeList, self).get_results(*args, **kwargs)
q = self.result_list.aggregate(gems_sum=Sum('get_member_gems_balance'))
self.gems_count = q['gems_sum']
并调用了我的UserMemberAdmin
def get_changelist(self, request):
return MyChangeList
但结果却是这样的错误
Cannot resolve keyword 'get_member_gems_balance' into field. Choices are: birth_date, confirmationcode, confirmed_at, date_joined, email, first_name, game_id, game_server_member, gameservertoken, gems_transaction_member, gems_transaction_reference, gender, groups, id, inboxthread, is_active, is_alert, is_gamer, is_staff, is_superuser, last_login, last_name, logentry, nickname, password, phone_number, picture, role, sent_messages, social_auth, topup_payment_member, user_permissions, user_threads, username
我认为这是因为get_member_gems_balance不是该模型中的实际字段。我怎样才能克服这个问题?
谢谢你的帮助你有@property()装饰师在“获取成员”和“宝石”余额上吗?没有,我没有,我应该添加那个属性吗@是的,它检测到它不是一个属性。所以我只是在def get_member_gems_balance上面添加@property?