gpt4 book ai didi

python - Django 和单位转换

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:36 25 4
gpt4 key购买 nike

我需要在数据库中存储一些值,距离,重量等。
在我的模型中,我有一个包含某些东西的数量的字段和带有选择选项的 IntegerField,它决定了这个数量的含义(长度、持续时间等)。

我应该为单位和物理量创建模型还是应该使用包含单位类型的 IntegerField

最佳答案

field(enum)"是指您在字段上使用 choices 选项吗?

一组简单的选择对于小型转化列表来说效果相当好。它允许您做出简化的假设,帮助您的用户(和您)获得有用的东西。

只有在以下情况下才能为单元创建正式模型:(a) 涉及很多单元,(b) 您需要扩展它,并且 (c) 有一些合理的期望,即数据库查找将包含一些值(value)。

单位不会经常改变。似乎没有理由为此使用数据库。对选项列表进行硬编码似乎要简单得多。

选择

例如,您可以使用类似的东西来跟踪转化情况。

UNIT_CHOICES = ( ('m', 'meters'), ('f', 'feet' ), ('i', 'inches'), ('pt', 'points') )

unit_conversions = {
('m','f'): 3.xyz,
('m','i'): 39.xyz,
('m','pt'): 29.xyz*72,
('f','m'): 1/3.xyz,
('f','i'): 12.0,
('f','pt'): 12.0*72,
etc.
}

鉴于此映射,您可以在转换方法中获得转换因子函数,进行数学计算,并返回转换后的单位。

class WithUnit( Model ):
...
def toUnit( self, someUnit ):
if someUnit == self.unit: return self.value
elif (someUnit,self.unit) in unit_conversions:
return self.value * unit_conversions[(someUnit,self.unit)]
else:
raise Exception( "Can't convert" )

模型

如果要为单位创建正式模型,则必须随身携带尺寸类型(长度、体积、质量、重量/力、压力、温度等)和各种单位换算系数。这适用于除温度以外的所有事物,温度除了一个因子外还有一个常数项。

您必须选择一组“基线”单位(例如 MKS )并在各个单位之间携带所有乘数。

您还必须选择要加载到您的表格中的英制单位数量(液体盎司、茶匙、汤匙、杯子、品脱、夸脱等)

关于python - Django 和单位转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/413446/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com