Django从外键的类中获取属性

man*_*sim 1 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)
Run Code Online (Sandbox Code Playgroud)

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

kar*_*ikr 8

这很直截了当.

试试这个:

def getdegree(self):
    return self.course.degree
Run Code Online (Sandbox Code Playgroud)

文档在这里

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