【问题标题】:Django Site Admin Objects Not Named Properly未正确命名的 Django 站点管理对象
【发布时间】:2014-02-16 13:36:22
【问题描述】:

我对 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 站点管理员时,“立法”、“标签”和“概念”表都成功显示。但是,当我继续在“标签”表下添加几个对象时,我看到它们都在管理面板中显示为“标签对象”,而不是标签对象本身的唯一名称。

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

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

【问题讨论】:

    标签: python django web


    【解决方案1】:

    尝试使用ModelAdmin 自定义您的管理员。它之所以如此显示,是因为 Tag 的字段没有可显示的内容。

    试试this。为ModelAdmin 创建一个类,并让您的list_display 类似于('id', 'name', )

    或许

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

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

    【讨论】:

    • 没关系 - 我只是忘了重新加载 apache。谢谢!
    猜你喜欢
    • 2016-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-28
    • 2012-10-14
    • 1970-01-01
    • 2011-02-23
    相关资源
    最近更新 更多