我已阅读所有其他主题,但我仍然不知道为什么我的应用程序没有出现在Django管理员中。其他一切都很好。
我的应用在settings.py
中我的root 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之上,但从我的阅读中,它不应该改变任何东西。有什么可能是错的线索?
答案 0 :(得分:9)
您是否在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',
)
例如。我非常确定安全性,除非它们在已安装的应用程序中,否则它们不会显示在管理员中。我想我有同样的问题,我无法让管理员看到cowsite。
The Django docs说管理页面:“默认情况下,它会按字母顺序显示已在管理员应用程序中注册的INSTALLED_APPS中的所有应用程序”
答案 1 :(得分:6)
巧合的是,我今天早上遇到了同样的问题。简而言之,这对我有用(参见参考资料):
在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项目中将我的应用添加到管理员?”
答案 2 :(得分:5)
您是以超级用户身份登录管理员吗?如果没有,则可能是权限问题。
答案 3 :(得分:0)
不确定您使用的是哪个版本的django,但当前的文档建议包括管理员网址。
('^admin/', include(admin.site.urls))
答案 4 :(得分:0)
对于其他人来说,我遇到了同样的问题,因为grappelli.dashboard在已安装的应用程序中,但实际上并没有安装在virtualenv中,所以要做一个pip冻结并确保所有要求都已实际安装。
答案 5 :(得分:0)
我遇到了同样的问题,对我有用的是在urls.py中改变这一行:
url(r'^admin/', include(admin.site.urls)),
到
url('^admin/', include(admin.site.urls)),
(删除代码第一位的 r ) 出于某种原因,我不知道,此后民意调查在管理员中可见。
答案 6 :(得分:0)
在安装的“ settings.py”文件中添加您的应用名称。
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
答案 7 :(得分:-1)
你没有回答安东尼的问题。您是以超级用户身份登录,还是至少与具有应用程序添加/编辑权限的用户一起登录?如果没有,你将看不到它们。