【问题标题】:Django - accessing app settings in another appDjango - 在另一个应用程序中访问应用程序设置
【发布时间】:2019-02-09 20:17:54
【问题描述】:

我对 Django 很陌生,所以这可能是一个基本问题,但我无法找到如何实现它。

所以我的 Django 项目中有一个应用程序,我们称之为player。在apps.py 我想添加一些特定于这个应用程序的设置。所以代码是这样的:

from django.apps import AppConfig

class PlayerConfig(AppConfig):
    name = 'player'
    player_key = 'GJHGJGJJKJK'

现在我有另一个名为engine 的应用程序。这有一个serializer.py,我想在其中创建一个 player_engine 并将player.player_key 传递给它。

所以我的序列化程序有一段代码如下所示:

from engines import player_engine

class EngineSerializer(serializers.ModelSerializer):
   class Meta:
   # some meta configuration values here
   ...

   def validate(self, data)
       player_engine = PlayerEngine(player.player_key)
       #in above method, I want to know to pass player.player_key
       ...

我知道可能有更好的方法来构建这个等,但是这是一个遗留的 Django 实现,我无法重组东西,所以如果有人能指出一个保持这个结构完整的解决方案,我将不胜感激。

理想情况下,我想知道是否可以将应用级别设置以某种方式合并到 django 的 settings.py 中可用的设置中

【问题讨论】:

  • 没试过,但也许:from django.apps import apps; apps.get_app_config('player').player_key
  • @thebjorn - 不幸的是它没有用。好像我只更新 AppConfig 子类中的一组预定义属性:(

标签: python django


【解决方案1】:

您可以使用django-zero-settings,这在某些情况下可能会对您有所帮助。签出这个答案https://stackoverflow.com/a/68916822/6484831

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 2018-03-24
    相关资源
    最近更新 更多