python - 如何从Django中的属性中单独获取变量的值
问题描述
我很难提出这个问题,所以我会尽力说明我的意思。
我有财产
def count_tax_rate(self):
if self.deposit_value > 100:
Deposits.objects.update(tax_rate=self.tax_rate+10)
return self.tax_rate + 10
count_tax_rate.short_description = "Tax rate"
tax_rate_property = property(count_tax_rate)
然后我将此属性连接到我的 admin.ModelAdmin 表单。
class DepositAdmin(admin.ModelAdmin):
readonly_fields = ('temporary_deposit_income', 'temporary_total_income', 'tax_rate_property',
'deposit_creating_date', 'deposit_end_date')
form = DepositForm
在我的管理面板中,这给了我
Tax rate = 10
但我需要在我的管理面板中计算并显示多个变量。
我试图重写我的属性函数
def count_tax_rate(self):
if self.deposit_value > 100:
Deposits.objects.update(tax_rate=self.tax_rate+10, total_income=self.deposit_value+100)
return self.tax_rate + 10, self.deposit_value + 100
count_tax_rate.short_description = "Tax rate"
tax_rate_property = property(count_tax_rate)
但它给了我这个
Tax rate = (Decimal('10.00'), 200)
我知道这是财产的运作方式。
有什么方法可以从一个属性函数中获取多个值,还是我必须寻找完全不同的解决方案?
PS。我需要单独使用这些值,因此我可以将它们用作 readonly_fields 中的不同字段。
解决方案
def count_tax_rate(self):
if self.deposit_value > 100:
Deposits.objects.update(tax_rate=self.tax_rate+10, total_income=self.deposit_value+100)
return f"Tax rate: {self.tax_rate + 10}, Deposit value: {self.deposit_value + 100}"
如果我理解您的问题,您希望在单个列中有多个值。我不知道你为什么要这样做,我建议你使用两个属性并将它们链接到两列,但是如果你想以这种方式继续,那么你可以只返回一个包含两个值的字符串。
我在这里使用 f 字符串,但您可以根据需要构建字符串。
推荐阅读
- python - 如何使用 PyGithub 在 repo 中创建新目录?
- java - 如何将 FlightOfferSearch 和 FlightOrder 对象作为 JSON 返回?
- r - 通过在一个列中选择动态宽度中的第一个和最后一个非缺失值来计算公式,以填充宽度上的 NA
- r - 如何在 R 数据框中取消嵌套列表,同时保留键和值?
- asp.net - 如何在使用 asp.net core 和 mongodb 时从一对多关系表中获取数据
- javascript - 即使使用 webkit 前缀,剪辑路径也无法在 safari 上运行
- google-analytics - 谷歌分析重定向,呈现 2 页
- r - 如何在 R 中创建一个带有两条条和一条线的图形?
- android - 升级AS后,新资源无法反映编辑器的变化
- angular - SSL 与 Firebase 托管 - OVH 域