【发布时间】:2012-02-15 01:04:39
【问题描述】:
我在 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 中显示组织名称,但我得到了这个:
如果我在 list_display 的 ServerAdmin 类中删除 org,我会得到:
我没有修改模板或覆盖任何ModelAdmin 方法。我使用 Mysql(5.1.58) 作为 ubuntu 11.10 存储库附带的数据库。
如果我能解决这个问题,我会非常高兴。提前致谢。
【问题讨论】:
-
在
models.py我看到TlxServer和admin.py只是Server。是不是打错字了? -
您不需要定义自动字段。 Django 自动为每个表创建一个主键。
-
@jcollado:这是一个错字:P 它假设是“服务器”
-
@dan-klasson:我从旧数据库中获取模型。我跑了
inspectdb,得到了模型,我得到了IntegerField作为主键,所以我把它们改成了AutoFiled
标签: python mysql django django-admin