管理员中缺少Django模型类

时间:2013-07-18 03:43:25

标签: python django django-models django-admin

出于某种原因,类archivealbum会在django管理面板中显示其所有字段,但{I} image字段在我显示album字段时转到图像面板添加图像。如果我打开一个shell,它会显示albumimage的一个子集,它只是没有显示在image的管理界面中(但它通过CLI执行) 。为什么呢?

class archive(models.Model):
    name = models.CharField(max_length = 30)
    archivedata = models.TextField(blank=True, help_text="Documentation for album/image.archivedata methodology is put here")
    def __unicode__(self):
        return self.name

class tag(models.Model):
    archive = models.ForeignKey(archive)
    tag = models.CharField(max_length=60)
    def __unicode__(self):
        return self.tag

class album(models.Model):
    archive = models.ForeignKey(archive)
    title = models.CharField(max_length=60)
    tags = models.ManyToManyField(tag, blank=True, help_text="Searchable Keywords")
    archivedata = models.TextField(blank=True, null=True, help_text="Data specific to particular archiving methods or processes can be stored here")
    def __unicode__(self):
        return self.title

class image(models.Model):
    album = models.ForeignKey(album)
    archive = models.ForeignKey(archive)
    imagefile = models.ImageField(upload_to='ns/') #image.width/height
    title = models.CharField(max_length=60, blank=True, help_text="Descriptive image title")
    tags = models.ManyToManyField(tag, blank=True, help_text="Searchable Keywords")

更新:根据请求包含我的admin.py:

from django.db.models import get_models, get_app
from django.contrib import admin
from django.contrib.admin.sites import AlreadyRegistered

def autoregister(*app_list):
    for app_name in app_list:
        app_models = get_app(app_name)
        for model in get_models(app_models):
            try:
                admin.site.register(model)
            except AlreadyRegistered:
                pass

autoregister('appname')

2 个答案:

答案 0 :(得分:2)

您的admin.py文件通常应如下所示。

from django.contrib import admin

admin.site.register(archive)
admin.site.register(album)
admin.site.register(image)

根据你的admin.py,我会这样做。

autoregister('archive', 'album', 'image')

那说了几点 - 你的admin.py有点过于复杂,当3行就足够了就不需要了。此外,您应该以大写(存档,专辑,图像)命名模型

答案 1 :(得分:1)

我没有看到任何问题你在管理员中有一些额外的代码吗?有些代码会覆盖album field

Photo