Django从ForwardManyToOne Descriptor对象获取字段

时间:2017-05-26 21:27:13

标签: django django-views

我这里有两个型号:

class Organization(models.Model):
    name = models.CharField()
    website = models.URLField()
    etc.

    def __str__(self):
        return name

    def __unicode__(self):
        return name

Class OrgDetail(models.Model):
    org = models.ForeignKey(Organization)
    detail_1 = models.CharField()
    detail_2 = models.CharField()
    etc.

我使用通用ListViews从组织导航到详细信息条目。

class OrganizationListView(ListView):
    model = Organization

class OrgDetailListView(ListView):
    model = OrgDetail

我现在想要的是向第二个视图添加一个函数(或做其他事情),这个函数允许我通过ForeignKey字段显示链接到OrgDetail实体的组织名称。现在我有:

def get_context_data(self, **kwargs):
        context = super(OrgDetailListView,self).get_context_data(
                                                    **kwargs)
        context['name'] = OrgDetail.org 
        print(context)
        return context

然而,这只是给了我......

<django.db.models.fields.related_descriptors.ForwardManyToOneDescriptor object at 0x03592B50>

...而不是组织名称的名称。

我是Django的新手,几个小时以来一直在撞墙。我正在尝试构建一个基于Web的数据输入平台。 OrgDetails数据点无法添加到组织模型中,因为我希望看到组织的年度变化。

无论如何,我觉得我对一些基本校长缺乏了解。请帮忙。 &LT; 3

1 个答案:

答案 0 :(得分:0)

你试图从类中获取字段,而不是实例。如果你有一个OrgDetail的实例,你确实可以做.carousel-inner>.item>a>img, .carousel-inner>.item>img, .img-responsive, .thumbnail a>img, .thumbnail>img{ min-height: 100vh; } - 但你还没有。

在任何情况下,您都不想在此处执行此操作,因为这是一个列表视图,它处理的是 OrgDetail的许多实例。他们自己的组织价值。相反,当您通过以下方式时,请在模板中执行此操作:

orgdetail.org