Django站点管理对象未正确命名

时间:2014-01-25 14:15:51

标签: python django web

我是Django框架的新手。我最近在models.py中创建了一些模型:

from django.db import models

# Demographic tags
class Tag(models.Model):
    name = models.CharField(max_length=32)
    hash_code = models.CharField(max_length=32, unique=True)

    def __unicode__(self):
        return self.name

# Legislation (ex. bills, resolutions)
class Legislation(models.Model):
    name = models.CharField(max_length=100)
    sponsor = models.CharField(max_length=50)
    summary = models.TextField()    # small blurb on top of bill details page
    demographic_tags = models.ManyToManyField(Tag)
    raw_html = models.TextField()  # HTML code that includes everything else

    def __unicode__(self):
        return self.name

# Concepts (ex. social security, welfare, other general terms)
class Concept(models.Model):
    name = models.CharField(max_length=100)
    summary = models.TextField()
    demographic_tags = models.ManyToManyField(Tag)
    raw_html = models.TextField()

    def __unicode__(self):
        return self.name

然后我创建了一个admin.py,它将我的模型注册为Django网站管理面板中的表格:

from django.contrib import admin
from civicate.dev.models import Tag, Legislation, Concept

admin.site.register(Tag)
admin.site.register(Legislation)
admin.site.register(Concept)

它已达到这一点。当我打开Django网站管理员时,“立法”,“标签”以及“概念”的表格都成功显示出来。但是,当我继续在“Tag”表下添加几个对象时,我看到它们都在管理面板中显示为“Tag对象”,而不是Tag对象本身的唯一名称。

关于如何解决此问题的任何想法?我从目前的角度发布了管理面板的屏幕截图。

http://i.stack.imgur.com/SYTky.png

1 个答案:

答案 0 :(得分:0)

尝试使用ModelAdmin自定义您的管理员。它显示得像它,因为Tag的字段没有任何显示。

尝试this。为ModelAdmin创建一个班级,让list_display类似于('id', 'name', )

或者

def __unicode__(self):
    u"%s" % self.name

可能会奏效。将其指定为unicode。