我有一个Django网站运行一些自定义应用程序。我没有使用Django ORM,只是视图和模板,但现在我需要存储一些信息,所以我在一个应用程序中创建了一些模型并启用了管理员。
问题是,当我登录管理员时,它只是说“您没有权限编辑任何内容”,甚至连页面中的Auth应用程序都没有显示。我使用与syncdb一样的用户作为超级用户。
在同一台服务器上,我有另一个使用Admin的网站就好了。
使用Django 1.1.0和Apache / 2.2.10 mod_python / 3.3.1 Python / 2.5.2,psql(PostgreSQL)8.1.11全部使用Gentoo Linux 2.6.23
我能找到解决方案的任何想法吗?
非常感谢。
更新:它适用于开发服务器。我敢打赌这与某些文件系统权限有关,但我找不到它。
UPDATE2:vhost配置文件:
<Location />
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE gpx.settings
PythonDebug On
PythonPath "['/var/django'] + sys.path"
</Location>
更新3:更多信息
更新4:确认apache和runserver的设置文件是相同的(重命名并且都破坏了)
更新5:/var/django/gpx/contable/init.py存在
这是urls.py的相关部分:
urlpatterns = patterns('',
(r'^admin/', include(admin.site.urls)),
)
urlpatterns += patterns('gpx',
(r'^$', 'menues.views.index'),
(r'^adm/$', 'menues.views.admIndex'),
答案 0 :(得分:22)
希望这有助于某人,但我们遇到了同样的问题,因为有人在settings.py中添加了不同的身份验证后端,并且没有保留默认的ModelBackend。将设置更改为:
AUTHENTICATION_BACKENDS = (
'auth.authentication.EmailBackend',
'django.contrib.auth.backends.ModelBackend',
)
为我们修好了。
答案 1 :(得分:12)
听起来您没有在管理员处注册任何应用程序(this overview中的第5步)。
尝试将行admin.autodiscover()
添加到您的主urls.py,确保先from django.contrib import admin
。
例如:
# Other imports...
from django.contrib import admin
admin.autodiscover()
urlpatterns = patterns('',
('^admin/', include(admin.site.urls)),
# Other URL patterns...
)
您还可以使用admin.site.register(YourModel)
单独注册模型。
答案 2 :(得分:2)
确保已将应用程序添加到settings.INSTALLED_APPS。
管理员应用索引页面的django模板显示为:
{% if app_list %}
{% for app in app_list %}
...
{% else %}
<p>{% trans "You don't have permission to edit anything." %}</p>
{% endif %}
这一定是你的问题。
编辑:或者您没有以您说的用户身份登录。您是否可以查看数据库并确保相关用户的auth_user.is_superuser值为1?
编辑:如果用户is_staff和is_superuser在数据库中标记为1,并且您确定以该用户身份登录;您是否有可能只在生产中(即在apache下)看到这个并且您的settings.py用于生产与开发中的不同?
编辑:所以你在开发和制作中有不同的行为。我可以想到两种情况:
a)您有不同的settings.py用于制作。你能编辑一下显示httpd.conf相关部分的问题吗?它应该是这样的:
<Location "/mysite/">
SetHandler python-program
PythonHandler django.core.handlers.modpython
SetEnv DJANGO_SETTINGS_MODULE mysite.settings
PythonOption django.root /mysite
PythonDebug On
</Location>
另外,你的PYTHONPATH是什么?
SetEnv行说什么?它是否指向您在开发中使用的相同模块?你确定在你的PYTHONPATH中有mysite.settings
作为你认为的文件吗?
b)您在制作中遇到PYTHONPATH问题,但无法找到相应的应用。这应该会产生更严重的错误......
问题:
答案 3 :(得分:2)
尝试访问您的数据库并在表auth_user中确保为您的用户将字段is_staff,is_active和is_superuser标记为true(1)。
答案 4 :(得分:0)
在django 0.96的旧安装上安装django 1.1时遇到了同样的问题
当我们进行全新安装时它已经解决了
答案 5 :(得分:0)
我遇到了同样的问题,我的设置文件如下:
PROJECT_APPS = (
'app1',
'app2',
)
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.admin',
'django.contrib.flatpages',
# django-allauth settings
'allauth',
'allauth.account',
'allauth.socialaccount',
# auth providers
'allauth.socialaccount.providers.facebook',
'storages',
'compressor',
'south',
'gunicorn',
'kombu.transport.django',
'djcelery',
'django_nose',
'raven.contrib.django.raven_compat',
'djrill',
'django_newsfeed'
) + PROJECT_APPS
我忘记在,
django_newsfeed