Python 无法获取模型对象以在django管理页面中显示属性

Python 无法获取模型对象以在django管理页面中显示属性,python,django,django-queryset,Python,Django,Django Queryset,My models.py: class Departement(models.Model): departNumber = models.PositiveSmallIntegerField(default=0, primary_key= True) departName = models.CharField(max_length=100) def __unicode__(self): return self.departNumber 我的admin.p

My models.py:

class Departement(models.Model):
    departNumber = models.PositiveSmallIntegerField(default=0, primary_key= True)
    departName = models.CharField(max_length=100)

    def __unicode__(self):
        return self.departNumber
我的admin.py:

class DepartementAdmin(admin.ModelAdmin):
    list_display = ('departNumber', 'departName')

admin.site.register(Departement, DepartementAdmin)
问题是,我无法获得任何“department”对象。我尝试过.get()、.filter()或.all()。在这两种情况下,它都返回并且不打印部门号

<Departement: Departement object>

它应该给我一个部门名称,即“Var”,因为“Var”是以2作为主键的部门。

\uuuuuuuUnicode\uuuu
方法更改为
\uuuu str\u
方法,请参阅。它应该与Python3一起工作

class Departement(models.Model):
    departNumber = models.PositiveSmallIntegerField(default=0, primary_key= True)
    departName = models.CharField(max_length=100)

    def __str__(self):
        return self.departNumber
要使其与python 2兼容,可以执行此处建议的操作: 你说:

department.objects.filter(departNumber=2)
应该给我一个departName 这就是“Var”,因为“Var”是以2作为主键的部门

因此,您依赖于
\uuuuuunicode\uuuu
方法来返回部门名称(即使您的
\uuuuunicode\uuu
方法的实现当前返回部门编号)

为什么不直接访问该属性

dept = Departement.objects.filter(departNumber=2)
dept.departName
从长远来看,它使代码更易于维护

但是要回答为什么它不起作用,我们需要知道您使用的是Python2还是Python3


如果3,则将方法的名称更改为
\uu str\uu
,如下所述:

我不明白你在问什么。您有一个Department对象。这是一个
Department
对象…移动您的def\uuu unicode\uuuu(self):在类中返回self.departNumber。这就是为什么它没有打印部门号。您使用的是Python2还是Python3?我已经更新了我的答案,现在您已经为您的问题添加了更多信息。我使用的是Python3
dept=department.objects.filter(departNumber=2)
dept.departName
给出一个错误@托尼
dept = Departement.objects.filter(departNumber=2)
dept.departName