Django模型字段,用于存储函数或类

蒂亚戈

是否可以创建引用函数或类而不是模型的Django自定义模型字段?

如果您想知道为什么我要这样做,这里简要说明一下我要达到的目标。

基本上我有一个FreightTable模型,该模型用于计算货运的价值,因此它应该具有执行此操作的方法。但是问题在于,有几种不同的计算方法,而FreightTable的每个实例都应按照其特定方法进行计算。

最初,我考虑过使用某种多态性来解决这个问题,但是后来我不得不为每种不同的算法创建一个特定的模型,而且它们也将位于数据库的不同表中,这对我来说是个问题。我还考虑过使用Django Polymorphic,但是我听说它的伸缩性不是很好,所以也不是一个好主意。

我的想法是,如果我可以仅在Model Field上引用这种不同的算法,那么我将拥有一个优雅而高效的解决方案。

布尔汉·哈立德(Burhan Khalid)

我的想法是,如果我能在Model Field上引用不同的算法

这是一个好主意,例如:

CALCULATION_TYPES = [(1, 'Normal'), (2, 'Express')]

class FreightTable(models.Model):
     # Normal fields
     calculation_type = models.IntegerField(choices=CALCULATION_TYPES)

     def calc_normal(self):
         pass

     def calc_express(self):
         pass

     def calc_default(self):
         pass

现在,对于每种货运类型,您都可以设置计算方法:

ft = FreightType(calculation_type=2)
ft.save()

在要显示计算结果的位置,从实例中获取方法,然后调用适当的方法:

call_map = {1: 'calc_normal', 2: 'calc_express'}
ft = FreightTable.objects.get(pk=1)
calculated_value = getattr(ft, call_map(ft.calculation_type))()

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何从suds响应中获取未解析的XML,以及用于存储的最佳Django模型字段

来自分类Dev

Django模型:存储对未知类的引用

来自分类Dev

Django字段具有模型类的价值

来自分类Dev

在 Django 模型中存储函数调用

来自分类Dev

Django模型字段-无论如何定义存储对象的字段

来自分类Dev

Django:将公共字段存储在父模型中

来自分类Dev

如何在Django模型字段上存储多个值

来自分类Dev

Django:将公共字段存储在父模型中

来自分类Dev

Django 模型 - 如何在字典中存储字段

来自分类Dev

字段更改时如何在类模型中调用函数?

来自分类Dev

在Django中用于128位UUID的最佳模型字段

来自分类Dev

Django:将Mixins用于常见的模型字段

来自分类Dev

如何将'IN'约束应用于Django模型的字段

来自分类Dev

在模型父类字段上的Django unique_together

来自分类Dev

django:元类中的模型和字段做什么?

来自分类Dev

Django:获取模型类的字段名称

来自分类Dev

是否可以在Django中将类作为模型字段?

来自分类Dev

类方法作为模型函数,类方法作为优化函数,用于scipy.optimize

来自分类Dev

Django“解构”模型字段函数的目的是什么?

来自分类Dev

如果模型实例字段等于 inplay (Django),如何运行函数

来自分类Dev

如何在计算中使用存储在 django 模型中的数据,然后将计算结果存储在 django 模型字段中?

来自分类Dev

用于存储数据的类

来自分类Dev

django模型:将多行线地址存储为一个模型字段的好方法

来自分类Dev

Django模型:删除字段

来自分类Dev

Django模型:删除字段

来自分类Dev

Django 模型到字段

来自分类Dev

Django Form,具有基于类模型的Class Meta模型和更多字段

来自分类Dev

Django模型中相同模型类的anytomany字段和外键

来自分类Dev

Django:我可以链接 2 个模型字段而不是模型类吗?

Related 相关文章

  1. 1

    如何从suds响应中获取未解析的XML,以及用于存储的最佳Django模型字段

  2. 2

    Django模型:存储对未知类的引用

  3. 3

    Django字段具有模型类的价值

  4. 4

    在 Django 模型中存储函数调用

  5. 5

    Django模型字段-无论如何定义存储对象的字段

  6. 6

    Django:将公共字段存储在父模型中

  7. 7

    如何在Django模型字段上存储多个值

  8. 8

    Django:将公共字段存储在父模型中

  9. 9

    Django 模型 - 如何在字典中存储字段

  10. 10

    字段更改时如何在类模型中调用函数?

  11. 11

    在Django中用于128位UUID的最佳模型字段

  12. 12

    Django:将Mixins用于常见的模型字段

  13. 13

    如何将'IN'约束应用于Django模型的字段

  14. 14

    在模型父类字段上的Django unique_together

  15. 15

    django:元类中的模型和字段做什么?

  16. 16

    Django:获取模型类的字段名称

  17. 17

    是否可以在Django中将类作为模型字段?

  18. 18

    类方法作为模型函数,类方法作为优化函数,用于scipy.optimize

  19. 19

    Django“解构”模型字段函数的目的是什么?

  20. 20

    如果模型实例字段等于 inplay (Django),如何运行函数

  21. 21

    如何在计算中使用存储在 django 模型中的数据,然后将计算结果存储在 django 模型字段中?

  22. 22

    用于存储数据的类

  23. 23

    django模型:将多行线地址存储为一个模型字段的好方法

  24. 24

    Django模型:删除字段

  25. 25

    Django模型:删除字段

  26. 26

    Django 模型到字段

  27. 27

    Django Form,具有基于类模型的Class Meta模型和更多字段

  28. 28

    Django模型中相同模型类的anytomany字段和外键

  29. 29

    Django:我可以链接 2 个模型字段而不是模型类吗?

热门标签

归档