【发布时间】: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 子类中的一组预定义属性:(