我很难表述这个问题,所以我会努力展示我的意思。
我有房地产
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)
然后我将此属性连接到我的管理员。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字符串,但您可以根据自己的喜好构建字符串。
我认为应该实现两个模型之间的关系。例如,您可以有一个父表和一个子表,它将成为Deposit
表,并将具有Foreign Key
的父表连接到Deposit
表。因此,现在您可以将许多存款单独分配给一个父级。
我希望这能有所帮助。如果我说得对,请告诉我。