Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/311.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 在导入的文件中提取Django项目标签_Python_Django - Fatal编程技术网

Python 在导入的文件中提取Django项目标签

Python 在导入的文件中提取Django项目标签,python,django,Python,Django,我正在实现一个元应用程序,出现以下问题: (根)/global.py class Model(Base): def f(self): app_label = do_magic() return app_label (根)/项目/(应用程序标签)/model.py 例如,在文件(root)/project/test/model.py中调用m.f()应该返回test,而project.test被添加到已安装的应用程序中 有人有主意吗?我把它命名为get\u app\u name

我正在实现一个元应用程序,出现以下问题:

(根)/global.py

class Model(Base):
  def f(self):
    app_label = do_magic()
    return app_label
(根)/项目/(应用程序标签)/model.py

例如,在文件(root)/project/test/model.py中调用
m.f()
应该返回
test
,而
project.test
被添加到
已安装的应用程序中


有人有主意吗?

我把它命名为
get\u app\u name
,而不是
do\u magic
。以下是您需要的

import os
import inspect

def get_app_name():
    return os.path.dirname(
               os.path.abspath(
                   inspect.stack()[-1][1])).split(os.path.sep)[-1]

谢谢根据上下文的不同,必须替换堆栈元素的编号:inspect.stack()[i][1](在本例中i=2)
import os
import inspect

def get_app_name():
    return os.path.dirname(
               os.path.abspath(
                   inspect.stack()[-1][1])).split(os.path.sep)[-1]