如果我有以下模型:
class VATPercentage(models.Model):
percentage = models.IntegerField(default=21)
字符串
有没有什么方法可以使它在引用它的示例时,实际上得到存储在percentage字段中的值?
例如,我希望能够做到:Service.vat_percentage
而不是Service.vat_percentage.percentage
类似于_ str在模型上调用str()的工作方式,但我需要一个整数。
我试图寻找类似的东西,如定义一个int _函数,但我不认为这是一件事..
2条答案
按热度按时间lrpiutwd1#
我觉得你的数据模型有点混乱。我理解您当前的数据模型看起来像这样:
字符串
如果你想让实际值成为Service的一个属性,我认为它只是表明你应该像这样设置你的
Service
模型:型
并完全摆脱
VATPercentage
。如果这真的不可能,那么你可以:
型
型
如果您不需要
VATPercentage
模型来做其他任何事情,我强烈建议您不要使用这两个选项。还要注意,我故意使用了一个不同的名称vat_percentage_value
,以避免 * 隐藏 * ForeignKey字段的名称。最后几点说明:
__int__()
方法来实现内置的int()
函数在传递对象时返回的内容。可能不是你想要的:)cyej8jka2#
我想,那是不可能的。如果在
=
的左边有instance,那么右边只有instance,没有更多,没有str或int!让我们尝试(假设我们有任何简单的汽车模型):字符串
因此,如果你在代码中将变量赋值给对象,你的变量将包含
object
而不是string。__str__
在模板中用于对象,所以如果你发送<Car: Mazeratti>对象到模板,django 'known'需要做什么:显示你在str方法中写了什么,即mazeratti
的值。希望我解释清楚))