在Django模型中存储应用程序逻辑

时间:2020-05-17 23:13:04

标签: python django postgresql django-models

我正在使用Django创建一个Web应用程序,并且我想存储应用程序逻辑。进行此操作的最佳方法是什么?例如,我目前有一些类似的东西存储在我的models.py文件中,但至少可以说是次优的。

class Alphabet(models.Model):
    first = models.CharField(max_length=1, default = 'a')
    second = models.CharField(max_length=1, default = 'b')
    third = models.CharField(max_length=1, default = 'c')

class Digits(models.Model):
    first = models.CharField(max_length=1, default = '1')
    second = models.CharField(max_length=1, default = '2')
    third = models.CharField(max_length=1, default = '3')

Characters = [Alphabet, Digits]

我应该将这种数据存储在我的models.py文件夹中吗?

2 个答案:

答案 0 :(得分:1)

您可以为此使用property装饰器:python property。如您在model methods文档中所见,您可以将函数定义为模型的属性。只需返回您要使用的静态数据即可。我建议您在模型文件中定义它们,因为将它们写入数据库效率不高。

答案 1 :(得分:1)

如果它没有变化,为什么不将其放入您的应用程序中呢? 如果您在数据库中需要它,则为静态数据设置一个特殊表似乎是一个合理的决定。 或者,您可以有一个特殊的表条目,其中包含所有具有特殊名称的默认值(默认值),例如“ default”而不是普通名称。