Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/339.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django从外键';s级_Python_Django_Model_Foreign Keys - Fatal编程技术网

Python Django从外键';s级

Python Django从外键';s级,python,django,model,foreign-keys,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): ret

我想显示另一个类的一个属性。当前类有一个外键,指向我想要获取属性的类

# 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文档,但我不是一个有经验的用户,所以即使我猜它很简单,我也无法理解。谢谢

这很直截了当

试试这个:

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


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

Wow!真的很简单!!非常感谢你的回答!我对所有这些话题都迷路了,我想我应该使用过滤器。再次感谢!!最后一个问题。是否可以使用“getdegree”使用“list\u filter”过滤结果?因为当我将其添加到“列表过滤器”中时,会出现错误。请参见:
# 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)