Python 无法获取模型对象以在django管理页面中显示属性
My models.py: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
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?我已经更新了我的答案,现在您已经为您的问题添加了更多信息。我使用的是Python3dept=department.objects.filter(departNumber=2)
dept.departName
给出一个错误@托尼
dept = Departement.objects.filter(departNumber=2)
dept.departName