0

C3poというアプリがあります。私はモデル「記事」に取り組んでいます。このモデルでは、カスタムの related_name を使用して、Lea という別のアプリのモデルへの ForeignKey フィールドを作成したいと考えています。related_name が一意になるように、「c3po_articles」という名前にします。しかし、アプリ名 c3po をハードコーディングしたくありません。フォルダ/アプリ名を動的に取得するにはどうすればよいですか? __file__ を使用して分割しますか、それとももっと洗練された方法がありますか?

ご協力ありがとうございました :)

4

1 に答える 1

1

この属性は、related_nameと の 2 つの変数による自動文字列補間をサポートしています。例えば:app_labelclass

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

さて、正直なところ、Django がどちらか一方のみ、つまり のみを含めることができるかどうかはわかりません'%(app_label)s_foo'が、試すことはできます。(ドキュメントを詳しく見てみると、私はそれを非常に疑っています。両方ともどちらでもないようですが、それでも、自分でテストして確認してください。)

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

編集

実際、それについてもっと考えた後、あなたの場合、 を使用するだけ'%(app_label)s_%(class)ss'c3po_articlesrelated_name.

于 2012-06-11T21:32:16.187 に答える