から関連するオブジェクトを取得し、私は外部キーフィールドの名前を使用して、関連するオブジェクトのショートカット、 を取得することができます:はモデルオブジェクトからdjango.db.models.fields.related.ForeignKey
>>> m1 = Mailbox.objects.get(pk=38)
>>> str(m1.localdomainfk)
'framailx.de'
しかし、もし
>>> f1 = Mailbox._meta.get_field('localdomainfk')
>>> f1.value_from_object(m1)
7
誰もが私を見ることができ、関連するオブジェクト ショートカットを取得する方法を、私は持っている場合のみ、ローカル:私は、私が唯一の関連オブジェクトのPKを得ることができる代わりに、その名前、 の外部キーフィールドを持っていますオブジェクトと外部キーフィールド?
バックグラウンドは一般的な読み取り専用のDetailViewです。表示されるフィールドの実際のリストは、アクティブなユーザー(スタッフのユーザーはすべて表示されます)によって異なります。
これは、モデルミックスインの一部です:get_fieldsによって返される
def get_fields(self, staff):
l = self.readonly_fields_for_staff if staff else self.readonly_fields
return [(field.verbose_name, self.get_field_value(field),
self.get_related_object_from_field(field))
for field in l]
def get_field_value(self, field):
if field.is_relation:
return None
else:
return self._get_FIELD_display(field)
def get_related_object_from_field(self, field):
if field.is_relation:
return getattr(self, field.name, None)
else:
return None
リストは、テンプレートで使用されます。
get_related_object_from_fieldには、Muhammad Tahirの回答が含まれています。
シェアモデルを使用することができます。 –
あなたが解決しようとしている実際の問題は何ですか?なぜあなたはこれをやろうとしていますか? – Sayse
これは一般的な読み取り専用DetailViewのためのもので、表示されているフィールドの実際のリストはアクティブユーザー(スタッフのユーザーはすべて表示されます)に依存します: – rabaxabel