【问题标题】:Apps won't show in Django admin应用程序不会显示在 Django 管理员中
【发布时间】:2011-01-01 10:23:28
【问题描述】:

我已经阅读了所有其他主题,但我仍然不明白为什么我的应用程序没有出现在 Django 管理中。其他一切正常。

我的应用在 settings.py 中

我的根 urls.py 文件中有 admin.autodiscover

from django.conf.urls.defaults import *
from django.conf import settings

from django.views.generic.simple import direct_to_template

from django.contrib import admin

admin.autodiscover()



urlpatterns = patterns('',
url(r'^$', direct_to_template, {
    "template": "homepage.html",
}, name="home"),

url(r'^admin/invite_user/$', 'signup_codes.views.admin_invite_user', name="admin_invite_user"),
url(r'^account/signup/$', "signup_codes.views.signup", name="acct_signup"),

(r'^account/', include('account.urls')),
(r'^profiles/', include('basic_profiles.urls')),
(r'^notices/', include('notification.urls')),
(r'^announcements/', include('announcements.urls')),
(r'^tagging_utils/', include('tagging_utils.urls')),
(r'^attachments/', include('attachments.urls')),
(r'^comments/', include('threadedcomments.urls')),
#
(r'^wayfinder/', include('wayfinder.urls')),
(r'^site/', include('jsite.urls')),
(r'^kiosk/', include('kiosk.urls')),
(r'^navigator/', include('navigator.urls')),
(r'^location/', include('location.urls')),
(r'^event/', include('event.urls')),
#(r'^news_reader/', include('news_reader.urls')),
#(r'^weather_reader/', include('weather_reader.urls')),

(r'^admin/(.*)', admin.site.root),
)

if settings.SERVE_MEDIA:
urlpatterns += patterns('',
    (r'^site_media/', include('staticfiles.urls')),
)

我所有的应用程序都有一个 admin.py 文件,其中包含类似

的内容
from django.contrib import admin
from event.models import Event

class EventAdmin(admin.ModelAdmin):
    list_display = (
                'short_name',
                'long_name',
                'locations',
                'categories',
                'description',
                'phone',
                'email',
                'url_source',
                'url_location',
                'external_ref',
                'show_event'
            )

admin.site.register(Event, EventAdmin)

我已经一遍又一遍地重新启动服务器;-)

我在 Pinax 之上构建,但从我的阅读来看,它不应该改变任何东西。任何线索可能是什么问题?

【问题讨论】:

  • 通常的原因是 settings.py 没有提到 INSTALLED_APPS 部分中的应用程序,正如 Code Duck 所说。你的设置正确吗?
  • 你完成syncdb了吗?
  • 找到了问题所在。我的一位管理员提到了已弃用的新表单,我没有立即修复它。似乎第二次(刷新页面)管理员被调用,错误被删除并且管理员显示但没有跟随包含错误的模型的所有模型。因为它位于我添加的应用程序的顶部,所以除了列表顶部的 Pinax 应用程序外,没有显示任何内容。永远不要忽略错误 ;-) 感谢所有帮助过的人,我会把它交给代码鸭 ;-)

标签: python django django-admin pinax


【解决方案1】:

您的应用程序是否位于 settings.py 的 INSTALLED_APPS 部分? 确保它在那里列出了您的应用程序。我的部分内容为

INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.admin',
'django.contrib.sites',
'squick.items',
'cowsite.search',
'cowsite.posts',

)

例如。我很确定安全性,除非它们在已安装的应用程序中,否则它们不会出现在管理员中。我想我遇到了同样的问题,我无法让牛场出现在管理员中。

The Django docs 说关于管理页面:“默认情况下,它会按字母顺序显示 INSTALLED_APPS 中已注册到管理应用程序的所有应用程序”

【讨论】:

  • 应用程序在 installed_apps 列表中。我不应该认为整个项目都能正常工作,我的应用程序中的所有模型都是正确生成的,并且可以在不同的视图和 10 多个模板中工作,但我在管理员中看不到它们......
  • admin.site.register(ThisModel) 添加到应用文件夹中的 admin.py 文件中。
【解决方案2】:

您是否以超级用户身份登录管理员?如果不是,则可能是权限问题。

【讨论】:

  • 不是每个可以登录 admin 的人都有 is_superuser 权限。仔细检查您是否这样做。
  • 是的,以超级用户权限登录
  • 值得注意的是,用户可以在没有 is_superuser 的情况下登录到管理员,并且可能只能看到 一些 应用程序/模型。 (我被这个问题困扰了一会儿,我的用户 is_staff 和 is_admin 可以在管理员中看到一些但不是所有的应用程序/模型。当我确定我也是 is_superuser 时,预期的一切都会出现。)
  • 这不是一个错误,而是一个特性。这就是超级用户的全部想法——查看所有应用程序。而普通的管理人员只能看到他们被允许看到的内容。哪些应用程序/模型对非超级用户可见是由权限模型控制的。
  • 任何读过这里的人都应该花点时间看看权限!我相当肯定我是超级用户,但我错了!结果我浪费了很多时间......
【解决方案3】:

碰巧我今天早上遇到了同样的问题。简而言之,这对我有用(有关详细信息,请参阅参考资料):

在MyApp的顶层目录(即models.py等相同目录)我添加了一个python模块admin.py,包含:

from models import ThisModel, ThatModel
from django.contrib import admin

admin.site.register(ThisModel)
admin.site.register(ThatModel)

然后在 mysite 目录中我做了 syncdb 和 runserver,ThisModel 和 ThatModel 在管理界面中。

这对你有用吗?

最好的祝福

伊万

** 参考文献

(我是新会员,所以只能发一个超链接!)

Django tutorial: Make the poll app modifiable in the admin

最近在 Pinax google 组上也有一个查询,标题为“如何在 Pinax 项目中将我的应用添加到管理员?”

【讨论】:

    【解决方案4】:

    不确定您使用的是哪个版本的 django,但当前文档建议包括管理网址。

     ('^admin/', include(admin.site.urls))
    

    【讨论】:

    • 我认为这来自 pinax。问题不在于我可以访问管理员。它真的可以访问我的应用程序的模型。谢谢
    【解决方案5】:

    对于其他人遇到这个问题,我遇到了同样的问题,因为 grappelli.dashboard 位于已安装的应用程序中,但并未实际安装在 virtualenv 中,因此请冻结 pip 并确保实际安装了您的所有要求。

    【讨论】:

      【解决方案6】:

      我遇到了同样的问题,对我有用的是更改 urls.py 中的这一行:

      url(r'^admin/', include(admin.site.urls)),
      

      url('^admin/', include(admin.site.urls)),
      

      (去掉第一段代码中的r) 出于某种我不知道的原因,此后民意调查在管理员中变得可见。

      【讨论】:

        【解决方案7】:

        在“settings.py”文件中添加您的应用名称安装的应用。

        INSTALLED_APPS = [
            'django.contrib.admin',
            'django.contrib.auth',
            'django.contrib.contenttypes',
            'django.contrib.sessions',
            'django.contrib.messages',
            'django.contrib.staticfiles',
            'myapp',
        
        
        ]
        

        【讨论】:

          【解决方案8】:

          如果其他解决方案不适合您,请尝试在其他浏览器中加载您的管理仪表板。当我使用 Google Chrome 时,我的一个应用程序没有显示在管理仪表板上。在尝试了其他人建议的多个答案后,我决定改用 Firefox。瞧!我终于可以在管理仪表板上看到我的应用了。

          【讨论】:

            【解决方案9】:

            你没有回答安东尼的问题。您是否以超级用户身份登录,或者至少以具有应用程序添加/编辑权限的用户身份登录?否则,您将看不到它们。

            【讨论】:

              猜你喜欢
              • 2016-03-10
              • 2016-06-20
              • 2011-04-21
              • 2014-03-23
              • 1970-01-01
              • 2011-01-24
              • 2010-12-14
              • 1970-01-01
              • 2014-09-08
              相关资源
              最近更新 更多