如何创建一个从其他模型中总结的模型,而不是保存到数据库中而是显示在管理页面中?
Posted
技术标签:
【中文标题】如何创建一个从其他模型中总结的模型,而不是保存到数据库中而是显示在管理页面中?【英文标题】:How to create a model that summary from others model, and not save into database but show in admin page? 【发布时间】:2020-06-27 16:43:27 【问题描述】:我有一个问题:我需要在管理页面中创建一个表格来汇总其他模型的数据,但它不是数据库中的实际模型。
如何实现?
【问题讨论】:
【参考方案1】:我假设您将使用现有模型来计算摘要。在模型中创建实例方法/属性(因为这将有助于计算模型的行级摘要)。对于管理员,您可以将 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
我希望这会有所帮助。
【讨论】:
以上是关于如何创建一个从其他模型中总结的模型,而不是保存到数据库中而是显示在管理页面中?的主要内容,如果未能解决你的问题,请参考以下文章
Xamarin Forms:如何通知我以前的视图模型而不是需要修改可观察集合?