Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/21.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的models.py中获取当前应用程序名称?_Python_Django_Python 2.7_Django 1.4 - Fatal编程技术网

Python 如何在Django的models.py中获取当前应用程序名称?

Python 如何在Django的models.py中获取当前应用程序名称?,python,django,python-2.7,django-1.4,Python,Django,Python 2.7,Django 1.4,我有一个叫做C3po的应用程序。我正在写“文章”范本。在这个模型中,我想创建一个ForeignKey字段,该字段与另一个名为Lea的应用程序中的模型具有自定义的相关_名称。为了确保相关的_名称是唯一的,我想将其命名为“c3po_articles”。但我不想硬编码应用程序名c3po。如何以动态方式获取文件夹/应用程序名称?我是使用_文件_并拆分它,还是有更优雅的方法 感谢您的帮助:)属性相关的\u name支持使用两个变量自动插入字符串:app\u label和class。例如: models.F

我有一个叫做C3po的应用程序。我正在写“文章”范本。在这个模型中,我想创建一个ForeignKey字段,该字段与另一个名为Lea的应用程序中的模型具有自定义的相关_名称。为了确保相关的_名称是唯一的,我想将其命名为“c3po_articles”。但我不想硬编码应用程序名c3po。如何以动态方式获取文件夹/应用程序名称?我是使用_文件_并拆分它,还是有更优雅的方法


感谢您的帮助:)

属性
相关的\u name
支持使用两个变量自动插入字符串:
app\u label
class
。例如:

models.ForeignKey(FooModel, related_name='%(app_label)s_%(class)s_foo')
现在,我真的不确定Django是否允许您只包含其中一个,即只包含
'%(app\u label)s\u foo'
,但您可以尝试。(仔细看了这些文档后,我非常怀疑。似乎两者都有,或者两者都没有,但还是要自己测试看看。)

见:

编辑


实际上,在仔细考虑之后,对于您的情况,您可以使用
'%(app_label)s_uuu%(class)ss'
,它应该将您的
c3po_文章
作为
相关的_名称

您可以使用model.app_名称,但关系名称可能应该在您的代码中使用,所以我不明白为什么这种动态的方式会足够灵活…对不起,但我不完全理解。我不应该这样做吗?我只是希望以后能够在不编辑整个代码的情况下重命名模型。related_name用于加载关系中的值-例如,如果related_name=“articles”,则使用myobj.articles.all()加载myobj可用的所有文章。如果不编辑使用该关系的代码,我看不到重命名相关名称的方法?我错过什么了吗?