Fac*_*sco 6 python django permissions django-admin
我有一个Django网站运行一些自定义应用程序.我没有使用Django ORM,只是视图和模板,但现在我需要存储一些信息,所以我在一个应用程序中创建了一些模型并启用了Admin.
问题是当我登录管理员时它只是说"您没有权限编辑任何内容",甚至连页面中的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>
Run Code Online (Sandbox Code Playgroud)
更新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'),
Run Code Online (Sandbox Code Playgroud)
Mat*_*ert 22
希望这有助于某人,但我们遇到了同样的问题,因为有人在settings.py中添加了不同的身份验证后端,并且没有保留默认的ModelBackend.将设置更改为:
AUTHENTICATION_BACKENDS = (
'auth.authentication.EmailBackend',
'django.contrib.auth.backends.ModelBackend',
)
Run Code Online (Sandbox Code Playgroud)
为我们修好了.
Joh*_*ebs 12
听起来您没有在管理员处注册任何应用程序(本概述中的步骤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...
)
Run Code Online (Sandbox Code Playgroud)
您也可以单独注册您的模型admin.site.register(YourModel).
确保您已将应用程序添加到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 %}
Run Code Online (Sandbox Code Playgroud)
那一定是你的问题。
编辑:要么您没有以您所说的用户身份登录。您能否查看数据库并确保相关用户的 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>
Run Code Online (Sandbox Code Playgroud)
另外,你的 PYTHONPATH 是什么?
SetEnv 行说什么?它是否指向您正在开发的相同模块?您确定您的 PYTHONPATH 中有mysite.settings您认为拥有的文件吗?
b) 您在生产中遇到 PYTHONPATH 问题,并且无法找到应用程序。但这应该会产生更严重的错误......
问题:
| 归档时间: |
|
| 查看次数: |
8257 次 |
| 最近记录: |