应用程序(或模型)未显示在 Django Admin 中
Posted
技术标签:
【中文标题】应用程序(或模型)未显示在 Django Admin 中【英文标题】:App (or Model) Not Showing up in Django Admin 【发布时间】:2011-10-17 03:55:47 【问题描述】:注意:
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])
我一无所知。有任何想法吗?我得到这个工作 in the official tutorial 但似乎无法让它在任何自制应用程序中工作,所以我知道我做错了什么,但我不知道是什么。
【问题讨论】:
【参考方案1】:在您的 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)
【讨论】:
+1 请注意(对于阅读本文的其他人)本教程没有指定ModelAdmin
子类开头,因此 admin.site.register(Model)
将起作用。
没错,如果您需要自定义类在管理站点上的显示方式,您只需指定 ModelAdmin 类,如下所示:docs.djangoproject.com/en/dev/intro/tutorial02/…
更改了它,清除了我的缓存,注销并重新登录......但它仍然无法正常工作。
等等,修复了它……但只有当我python manage.py runserver
。如果我通过 Apache 查看它,它就不起作用。奇怪……很奇怪。不过谢谢,你帮了我很多。看起来我现在还有其他一些神秘的错误要追查。典型的。解决一个,得到另一个或几个其他。
应用可能无法显示的相关原因,对于那些使用 gunicorn 的用户:***.com/questions/12773763/…以上是关于应用程序(或模型)未显示在 Django Admin 中的主要内容,如果未能解决你的问题,请参考以下文章