Django Admin中不显示应用(或模型)

2 投票
1 回答
3993 浏览
提问于 2025-04-16 22:38

注意:

  • Django 1.3
  • thingy 是我实验性应用的名字。
  • 我学习Python和Django已经一周了。

我只是想让我的应用在管理区域显示出来,但它就是不行。我已经在这个网站上看过其他相关的问题和答案,但都没有帮助我解决这个问题。我猜问题可能出在我导入模型的方式上,但我觉得看起来没什么问题……

exp/settings.py中相关的部分:

INSTALLED_APPS = (
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.sites',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'thingy',
    # Uncomment the next line to enable the admin:
    'django.contrib.admin',
    # Uncomment the next line to enable admin documentation:
    # 'django.contrib.admindocs',
)

exp/thingy/admin.py

from thingy.models import Daily
from django.contrib import admin

class Daily(admin.ModelAdmin):
    fields    = ['user', 'hours_as_sec']

admin.site.register(Daily)

exp/thingy/models.py

from django.db import models
from django.contrib.auth.models import User

# Create your models here.

class Daily(models.Model):
    user=models.ForeignKey(User, unique=True)
    day = models.DateField()
    hours_as_sec = models.PositiveIntegerField()
    notes = models.TextField()

class Monthly(models.Model):
    user=models.ForeignKey(User, unique=True)
    month = models.DateField()
    hours_as_sec = models.PositiveIntegerField()
    notes = models.TextField()

class WorkedWith(models.Model):
    user=models.ForeignKey(User, unique=True)
    day = models.DateField()
    hours_as_sec = models.PositiveIntegerField()

class UserProfile(models.Model):
    user = models.ForeignKey(User, unique=True)
    url = models.URLField("Website", blank=True)
    company = models.CharField(max_length=50, blank=True)

User.profile = property(lambda u: UserProfile.objects.get_or_create(user=u)[0])

我完全不知道该怎么办。有什么想法吗?我在官方教程中让这个工作正常,但在任何自己做的应用中都无法实现,所以我知道我做错了什么,但不知道具体是什么。

1 个回答

4

在你的 admin.py 文件里,你需要改一下注册模型的方式。

把类名从

class Daily(admin.ModelAdmin):
    fields    = ['user', 'hours_as_sec']

改成

class DailyAdmin(admin.ModelAdmin):
    fields    = ['user', 'hours_as_sec']

然后按照下面的方式注册:

admin.site.register(Daily,DailyAdmin)

撰写回答