我是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对象本身的唯一名称。
关于如何解决此问题的任何想法?我从目前的角度发布了管理面板的屏幕截图。
答案 0 :(得分:0)
尝试使用ModelAdmin
自定义您的管理员。它显示得像它,因为Tag
的字段没有任何显示。
尝试this。为ModelAdmin
创建一个班级,让list_display
类似于('id', 'name', )
。
或者
def __unicode__(self):
u"%s" % self.name
可能会奏效。将其指定为unicode。