为Django app设置元信息

时间:2012-08-26 03:39:27

标签: django django-apps

我的Django项目上安装了一些应用程序。我希望某些应用能够从其他一些应用中获取信息。因此,我希望为每个应用程序提供一些有关权限的基本元信息。

所以,如果我有三个应用程序:A1,A2和A3。

我想将A1设置为只读。将A2设置为读/写。将A3设置为无法读取或写入。

元描述主要是为了我自己的理智。这些应用程序不适用于我没有写过的应用程序。

有没有办法在应用级别添加此类元数据?也许是通过Django app的未使用的描述字段?

1 个答案:

答案 0 :(得分:3)

不知道为什么你会需要这个,但通常你会将所有元信息放在应用程序的__init__.py中。然后你可以从另一个应用程序访问它:

myapp1/__init__.py

version = '0.1.0'
permissions = ['read', 'write']

myapp2/utils.py

from django.conf import settings
import importlib

for app_name in settings.INSTALLED_APPS:
    app = importlib.import_module(app_name)
    if hasattr(app, 'permissions') and 'write' in app.permissions:
        do_something()