【发布时间】:2020-06-27 16:43:27
【问题描述】:
我有一个问题:我需要在管理页面中创建一个表格来汇总其他模型的数据,但它不是数据库中的实际模型。
如何实现?
【问题讨论】:
标签: python django django-models
我有一个问题:我需要在管理页面中创建一个表格来汇总其他模型的数据,但它不是数据库中的实际模型。
如何实现?
【问题讨论】:
标签: python django django-models
我假设您将使用现有模型来计算摘要。在模型中创建实例方法/属性(因为这将有助于计算模型的行级摘要)。对于管理员,您可以将 ModelAdmin 与您的模型(可能是 proxy model)一起使用,然后使用 blocki the actions。
模型实例方法/属性将用于计算行级摘要
class YourMainModel(models.Model):
# Your Model code
def instanceMethod(self)
return some_summery_calculation_based_on_model_fields
@property
def instanceProperty(self)
return some_summery_calculation_based_on_model_fields
class YourMainModelProxy(YourMainModel)
class Meta:
proxy=True
现在在 admin.py 中
class YourSummeryModelAdmin(admin.ModelAdmin):
#Configure your model admin (Somewhat like this)
model = YourMainModelProxy
list_display = ['instanceMethod','instanceProperty'...]
# Disable add permission
def has_add_permission(self, request):
return False
# Disable delete permission
def has_delete_permission(self, request, obj=None):
return False
我希望这会有所帮助。
【讨论】: