Django从外键的类中获取属性

时间:2014-02-14 03:58:00

标签: python django model foreign-keys

我想从另一个类中显示一个属性。当前类有一个外键,用于获取属性的类。

# models.py
class Course(models.Model):
    name = models.CharField(max_length=100)
    degree = models.CharField(max_length=15)
    university = models.ForeignKey(University)

    def __unicode__(self):
        return self.name

class Module(models.Model):
    code = models.CharField(max_length=10)
    course = models.ForeignKey(Course)

    def __unicode__(self):
        return self.code

    def getdegree(self):
        return Course.objects.filter(degree=self)

# admin.py.
class ModuleAdmin(admin.ModelAdmin):
    list_display = ('code','course','getdegree')
    search_fields = ['name','code']
    admin.site.register(Module,ModuleAdmin)

所以我要做的是获得模块使用“getdegree”的“程度”。我在这里阅读了几个主题,并尝试了django文档,但我不是一个有经验的用户,所以即使我猜它是简单的,我无法弄清楚。谢谢!

1 个答案:

答案 0 :(得分:6)

非常直接。

试试这个:

def getdegree(self):
    return self.course.degree

Documentation here

您可以安全地执行此操作,因为course不是可空字段。如果是,您应该在访问其属性之前检查对象是否存在。