2010-06-06 309 views
28

我已经停止了几个Django的应用程序和东西为我自己的基金和迄今为止一切工作正常。模型不显示在Django管理员

现在我刚刚创建了新项目(django 1.2.1),并且从第一时刻就遇到了麻烦。

我创造了新的应用程序 - 游戏和新模型游戏。我创建了admin.py并将相关内容放入其中。冉syncdb并去检查管理员。模型没有出现在那里。

我继续通过以前的类似线程检查和双检读道: Registered models do not show up in admin Django App Not Showing up in Admin Interface

但据我所知,他们不帮我满意。也许别人可以为我指出这一点。

models.py在游戏应用:

# -*- coding: utf-8 -*- 
from django.db import models 

class Game(models.Model): 
     type = models.IntegerField(blank=False, null=False, default=1) 
     teamone = models.CharField(max_length=100, blank=False, null=False) 
     teamtwo = models.CharField(max_length=100, blank=False, null=False) 
     gametime = models.DateTimeField(blank=False, null=False) 

admin.py在游戏应用:

# -*- coding: utf-8 -*- 
from jalka.game.models import Game 
from django.contrib import admin 

class GameAdmin(admin.ModelAdmin): 
     list_display = ['type', 'teamone', 'teamtwo', 'gametime'] 

admin.site.register(Game, GameAdmin) 

项目settings.py:

MIDDLEWARE_CLASSES = (
    'django.middleware.common.CommonMiddleware', 
    'django.contrib.sessions.middleware.SessionMiddleware', 
    'django.middleware.csrf.CsrfViewMiddleware', 
    'django.contrib.auth.middleware.AuthenticationMiddleware', 
    'django.contrib.messages.middleware.MessageMiddleware', 
) 

ROOT_URLCONF = 'jalka.urls' 

TEMPLATE_DIRS = (
     "/home/projects/jalka/templates/" 
) 

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 
    'game', 
) 

urls.py:

from django.conf.urls.defaults import * 

# Uncomment the next two lines to enable the admin: 
from django.contrib import admin 
admin.autodiscover() 

urlpatterns = patterns('', 
     # Example: 
     # (r'^jalka/', include('jalka.foo.urls')), 
     (r'^admin/', include(admin.site.urls)), 
) 

Alan。

回答

15

Hmmmm ...尝试改变包括您的应用程序在settings.py:

来源:

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 
    'game', 
    .... 

要:

​​
+0

是一回事尝试确实如此。但如果真的如此,那么我怀疑这个模型会在数据库中出现。但我会尝试。以防万一。 – 2010-06-07 16:55:26

+0

看起来就是这样。 django对于某些东西真的更加严格了吗?就像我发现上下文处理器中的'pass'产生了错误,我必须用return {}来取代pass来清除错误(更多内容请参阅http://groups.google.com/group/django-users/)。 browse_thread/thread/144fa6b67db420f/ec98c74e0606cbe3) – 2010-06-07 17:10:10

+3

这里的另一种可能性是您作为无权更改该模型的用户登录到管理界面;在这种情况下,即使其他事情都是正确的,模型也不会显示。因此,在这些情况下,当尝试调试时最好确保以管理员用户身份登录,以排除权限问题。 – 2015-05-22 14:57:40

3

这也可能是非常罕见的,但今天我遇到了一个问题,我创建的admin.py文件的权限已损坏,因此dj无法读取安戈。我删除了该文件并成功重新创建了该文件。

希望拯救一个人,如果他们在我的问题上绊倒在这里。

6

我知道这已经被回答和接受,但我觉得分享我的解决方案是这个问题,也许它会帮助别人。

INSTALLED_APPS是这样的:

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.staticfiles', 
    'core', # <---- this is my custom app 
    # Uncomment the next line to enable the admin: 
    'django.contrib.admin', 
    'south', 
    # Uncomment the next line to enable admin documentation: 
    # 'django.contrib.admindocs', 
) 

见,我把我的应用程序Django的管理应用程序之前,显然它加载它们的顺序。我只是将我的应用程序移动到管理员的下方,并且它开始显示:)

28

报告的问题可能是因为您跳过注册管理站点的模型。这是可以做到,创建你的应用程序下admin.py文件,并有注册机型:

admin.site.register(MyModel) 
+1

这个答案最高评分是怎么回事?我的代码显示我确实有admin.site.register ...并且所选的答案是正确的..所以wtf ... – 2017-04-26 09:41:31

+3

因为人们在Google中输入“模型未显示在管理员中”,请尝试所有解决方案第一个SO页,他们发现,并upvote无论工程: - D – andyhasit 2017-05-10 10:04:56

+0

仍排名... XD @andyhasit很好的接收! – Dos 2017-11-02 11:00:53

0

添加到什么孔雀皇说,你settings.py应该是这样的:

INSTALLED_APPS = (
    'django.contrib.auth', 
    'django.contrib.contenttypes', 
    'django.contrib.sessions', 
    'django.contrib.sites', 
    'django.contrib.messages', 
    'django.contrib.admin', 
    'YOUR_PROJECT', 
    # And 
    'YOUR_PROJECT.Foo', 
    'YOUR_PROJECT.Bar', 
) 
0

我也要喜欢补充,我做了所有这些答案说,除了我没有输入命令行sudo service apache2 restart,我需要使更改生效。 (因为我在亚马逊网络服务的端口80上测试了一个活动服务器,我也在使用Ubuntu操作系统。)这为我解决了这个问题。我希望这可能有助于某人。

1

我正在使用数字海洋,也遇到了这个问题。解决方案是重启服务。我用

服务gunicorn重启

,并且得到了模型展现出来

3

Django的1.10帮助我在最后

注册下列方式 用(admin.ModelAdmin)模型
from django.contrib import admin 

from .models import YourModel 
admin.register(YourModel)(admin.ModelAdmin) 
+0

这对我有帮助,并帮助我找到一个错误,但你可能想要'admin.site.register(YourModel)'这是正确的方法。 – 2018-02-22 22:46:07

0

我有同样的问题。我解决这个要添加管理员的登录到admin.py。 而且我不需要添加额外的类。

像:

from jalka.game.models import Game 
from django.contrib import admin 

admin.site.register(Game) 

环境:Win10,Django的1.8