如何在该应用程序中获取文件的Django应用程序名称?

时间:2011-09-22 07:13:01

标签: django

拥有作为django应用程序一部分的文件的完整路径我想获得一个Django应用程序名称。

例如,对于此路径:

/lib/python2.6/site-packages/django/contrib/auth/tests/auth_backends.py

应用程序名称为auth

我想知道如何以编程方式为app中的特定文件名计算这个Django应用程序名称。

背景:我想从vim编辑器集成调用Django测试管理命令。它应该为当前编辑的文件所属的应用程序运行测试。

2 个答案:

答案 0 :(得分:2)

您可以使用__import__按文件名获取模块。您可以使用__package__属性获取它的包名称。然后,您可以检查settings.INSTALLED_APPS中的哪个应用是包名称的子字符串。这是你的应用程序。

答案 1 :(得分:0)

如果你在该模块中有一个类的实例,你可以尝试:

instance._meta.app_label