Django Admin中不显示应用(或模型)
注意:
- 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)