从django.db.models.fields.related.ForeignKey获取相关对象
从模型对象中,我可以获得相关的对象快捷方式, 使用外键字段的名称:从django.db.models.fields.related.ForeignKey获取相关对象,django,Django,从模型对象中,我可以获得相关的对象快捷方式, 使用外键字段的名称: >>> m1 = Mailbox.objects.get(pk=38) >>> str(m1.localdomainfk) 'framailx.de' 但是如果我有外键字段而不是它的名称, 我只能得到相关对象的主键: >>> f1 = Mailbox._meta.get_field('localdomainfk') >>> f1.value_from_ob
>>> m1 = Mailbox.objects.get(pk=38)
>>> str(m1.localdomainfk)
'framailx.de'
但是如果我有外键字段而不是它的名称,
我只能得到相关对象的主键:
>>> f1 = Mailbox._meta.get_field('localdomainfk')
>>> f1.value_from_object(m1)
7
有人能告诉我如何得到相关的物品吗
快捷方式,如果我只有本地对象和外键字段
后台是一个通用的只读详细视图,其中显示的字段的实际列表取决于活动用户(职员用户查看全部)
这是模型混合的一部分:
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_字段返回的列表
“从中获取相关对象”字段包含穆罕默德·塔希尔的答案。您可以使用
分享你的模型。你想解决的实际问题是什么?为什么要这样做?这是针对一般的只读详细视图,其中显示的字段的实际列表取决于活动用户(职员用户查看所有):
m1 = Mailbox.objects.get(pk=38)
f1 = 'localdomainfk'
f1 = getattr(m1, f1)