Django:存储视图和Celery任务中使用的常量的最佳位置

y1aodyip  于 2023-05-19  发布在  Go
关注(0)|答案(1)|浏览(134)

我正在寻找关于我的Django应用程序中的项目结构的建议。我想定义一个常量,它既可以在视图中使用,也可以在后台任务中使用(具体来说是Celery),但是我不确定应该把它放在哪里。
常量定义要显示给用户的记录数。我的模型表示一个图像,只需要在页面上显示最近的100条记录。可以删除较旧的记录,并且有一个单独的Celery任务每周清理这些记录。
我在模型类中将这个100定义为NUM_RECORDS_TO_SHOW,但我不确定这是否是最佳位置,因为我将模型暴露给业务逻辑。在我看来,定义这个常量似乎也是一个坏主意,因为这可能导致循环导入。

oipij1gg

oipij1gg1#

如果settings.py模块对于项目是全局的,我更愿意在其中定义任何这样的常量。

# settings.py

NUM_RECORDS_TO_SHOW = 100 # or you even can fetch it from env

在***代码***的任何地方访问此变量,如下所示

# tasks.py or views.py

from django.conf import settings

print(settings.NUM_RECORDS_TO_SHOW) #  this will return the value `100`

相关问题