如何从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)

然后我将此属性连接到我的管理员。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表。因此,现在您可以将许多存款单独分配给一个父级。

我希望这能有所帮助。如果我说得对,请告诉我。

最新更新