0

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

谢谢您的帮助 :)

4

1 回答 1

1

related_name属性支持带有两个变量的自动字符串插值:app_labelclass。例如:

models.ForeignKey(FooModel, related_name='%(app_label)s_%(class)s_foo')

现在,老实说,我不确定 Django 是否会让你只包含一个或另一个,即 just '%(app_label)s_foo',但你可以尝试。(仔细查看文档后,我非常怀疑它。似乎两者兼而有之,但仍然,自己测试一下看看。)

请参阅:https ://docs.djangoproject.com/en/dev/topics/db/models/#be-careful-with-related-name

编辑

实际上,在考虑更多之后,对于您的情况,您可以只使用'%(app_label)s_%(class)ss',这应该将您c3po_articles作为related_name.

于 2012-06-11T21:32:16.187 回答