【问题标题】:Display django models property in admin在管理员中显示 django 模型属性
【发布时间】:2020-07-16 14:47:47
【问题描述】:

当我在 django 模型中工作时,我尝试在 django 模型中实现计算部分。但我也不知道如何在 django 管理端显示计算出的数量”

Please see this image for clarifications

这是我实现的代码。我需要在 django 管理端添加 Extra_Payment 和 Total_Payment。

class Salarie(models.Model):
    Employee_Name = models.ForeignKey('Employee_Detail', models.DO_NOTHING,primary_key=True)
    Dept_Name = models.ForeignKey('Department', models.DO_NOTHING)
    Basic_Salary = models.IntegerField(default=0)
    Extra_Hours = models.IntegerField(default=0)
    @property
    def Extra_Payment(self):
        return self.Extra_Hours * 350

    Bonus = models.IntegerField(default=0)
    @property
    def Total_Payment(self):
        return self.Extra_Payment + self.Basic_Salary + self.Bonus

    m = (
        ("January","January"),("February","February"),("March","March"),("April","April"),("May","May"),("June","June"),("July","July"),("August","August"),("September","September"),("October","October"),("November","November"),("December","december")
    )
    Month = models.CharField(max_length=10, choices= m)
    Year = models.IntegerField(max_length=4)
    Status = models.BooleanField()
    Paid_Date = models.DateField(null=True,blank=True)
    
    def __str__(self):
        return str(self.Employee_Name)

【问题讨论】:

标签: django django-models


【解决方案1】:

您可以在 ModelAdmin.readonly_fields

的帮助下显示计算金额,即 Extra_Payment 和 Total_Payment
# admins.py
from django.contrib import admin
from .models import Salarie


class SalarieAdmin(admin.ModelAdmin):
    readonly_fields = ('Extra_Payment', 'Total_Payment')

admin.site.register(Salarie, SalarieAdmin)

更多详情请参考docs

【讨论】:

  • 非常感谢。这帮助很大
猜你喜欢
  • 2014-09-08
  • 2021-09-14
  • 2014-12-01
  • 2019-09-22
  • 1970-01-01
  • 2017-05-08
  • 1970-01-01
  • 2019-05-14
  • 1970-01-01
相关资源
最近更新 更多