Django管理员列表显示+ ForeignKey =空更改列表
问题内容:
我在django
admin中遇到一个奇怪的问题list_display
。每当我将外键添加到list_display
整个更改列表视图时,该视图就会变为空白,仅显示条目总数。
models.py:
class Organization(models.Model):
org_id = models.AutoField(primary_key=True)
org_name = models.CharField(max_length=288)
def __unicode__(self):
return self.org_name
class Meta:
db_table = u'organization'
class Server(models.Model):
server_id = models.AutoField(primary_key=True)
server_name = models.CharField(max_length=135,verbose_name="Server Name")
org = models.ForeignKey(Organization,verbose_name="Organization")
def __unicode__(self):
return self.server_name
class Meta:
db_table = u'server'
admin.py:
class ServerAdmin(admin.ModelAdmin):
list_display = ('server_name','org')
admin.site.register(Server,ServerAdmin)
现在,我希望该代码在中显示我的组织名称ChangeList View
,但我得到的是:
如果我删除org
在list_display
的ServerAdmin
班级,我得到这样的:
我没有修改模板或覆盖任何ModelAdmin
方法。我正在使用Mysql(5.1.58)作为ubuntu 11.10存储库随附的数据库。
如果能为这个有问题的家伙讨价还价,我将感到非常高兴。提前致谢。
问题答案:
我第二点是 Stefano ,这null=True, blank=True
是要补充的事实。但是,我认为您只需要将其添加到模型org_name
字段即可Organization
。那应该让您通过。之所以必须这样做,是因为您已经inspectdb
从旧版数据库创建模型。organization
DB中的表可能存储了一个空字符串。因此,添加以上内容将允许管理员显示空白字段/列。
此外,您也可以在不想像上面那样更改模型定义的情况下尝试使用回调。