Django admin list_display 未显示模型方法 return 项
Django admin list_display is not displaying model method return item
我无法让管理员的 list_display 显示来自模型方法的信息,但相同的方法在更改页面的字段集中显示正常。我想我已经修正了其他 questions/answers 中关于这个主题的所有错误,但我似乎无法弄清楚我做了什么。任何帮助将不胜感激。
管理员:
class StudentAdminConfig(admin.ModelAdmin):
list_dispaly = ('name', 'get_total_funds')
fieldsets=(
(None, {'fields': ('name', 'get_total_funds')}),
)
readonly_fields = ('get_total_funds',)
admin.site.register(Student, StudentAdminConfig)
型号:
(注:还有一个模型FundsEvent与Student是多对多的关系)
class Student(models.Model):
name = models.CharField(max_length=255)
def get_total_funds(self):
events = self.get_funds_events()
total = float(0)
for event in events:
if event.income:
total += float(event.amount)
else:
total -= float(event.amount)
return f'${total:.2f}'
get_total_funds.short_description = "Total Funds"
def get_funds_events(self):
return FundsEvent.objects.filter(students_attended=self)
def __str__(self):
return self.name
这个 list_display 问题的恼人之处在于它没有给出任何我可以追溯的错误,它只是显示没有“总资金”列的页面。
此外,我在这方面投入了太多时间,它甚至不是一个重要的功能,对我来说只是一种方便,因为我实际上是唯一一个会在这个特定项目上看到这个显示器的人,但我'我投资够了,真想弄明白,哈哈
再次感谢。
如果您更正了
中的拼写错误会怎样
class StudentAdminConfig(admin.ModelAdmin):
list_dispaly = ('name', 'get_total_funds')
fieldsets=(
(None, {'fields': ('name', 'get_total_funds')}),
)
readonly_fields = ('get_total_funds',)
admin.site.register(Student, StudentAdminConfig)
制作:
class StudentAdminConfig(admin.ModelAdmin):
list_display = ('name', 'get_total_funds')
fieldsets=(
(None, {'fields': ('name', 'get_total_funds')}),
)
readonly_fields = ('get_total_funds',)
admin.site.register(Student, StudentAdminConfig)
对我有用..
from django.contrib import admin
from .models import Student
class StudentAdminConfig(admin.ModelAdmin):
list_display = ['name', 'email', 'phone']
这应该与 StudentAdminConfig
admin.site.register(Contact, StudentAdminConfig)
我无法让管理员的 list_display 显示来自模型方法的信息,但相同的方法在更改页面的字段集中显示正常。我想我已经修正了其他 questions/answers 中关于这个主题的所有错误,但我似乎无法弄清楚我做了什么。任何帮助将不胜感激。
管理员:
class StudentAdminConfig(admin.ModelAdmin):
list_dispaly = ('name', 'get_total_funds')
fieldsets=(
(None, {'fields': ('name', 'get_total_funds')}),
)
readonly_fields = ('get_total_funds',)
admin.site.register(Student, StudentAdminConfig)
型号: (注:还有一个模型FundsEvent与Student是多对多的关系)
class Student(models.Model):
name = models.CharField(max_length=255)
def get_total_funds(self):
events = self.get_funds_events()
total = float(0)
for event in events:
if event.income:
total += float(event.amount)
else:
total -= float(event.amount)
return f'${total:.2f}'
get_total_funds.short_description = "Total Funds"
def get_funds_events(self):
return FundsEvent.objects.filter(students_attended=self)
def __str__(self):
return self.name
这个 list_display 问题的恼人之处在于它没有给出任何我可以追溯的错误,它只是显示没有“总资金”列的页面。 此外,我在这方面投入了太多时间,它甚至不是一个重要的功能,对我来说只是一种方便,因为我实际上是唯一一个会在这个特定项目上看到这个显示器的人,但我'我投资够了,真想弄明白,哈哈
再次感谢。
如果您更正了
中的拼写错误会怎样class StudentAdminConfig(admin.ModelAdmin):
list_dispaly = ('name', 'get_total_funds')
fieldsets=(
(None, {'fields': ('name', 'get_total_funds')}),
)
readonly_fields = ('get_total_funds',)
admin.site.register(Student, StudentAdminConfig)
制作:
class StudentAdminConfig(admin.ModelAdmin):
list_display = ('name', 'get_total_funds')
fieldsets=(
(None, {'fields': ('name', 'get_total_funds')}),
)
readonly_fields = ('get_total_funds',)
admin.site.register(Student, StudentAdminConfig)
对我有用..
from django.contrib import admin
from .models import Student
class StudentAdminConfig(admin.ModelAdmin):
list_display = ['name', 'email', 'phone']
这应该与 StudentAdminConfig
admin.site.register(Contact, StudentAdminConfig)