代码之家  ›  专栏  ›  技术社区  ›  Facundo Casco

django管理员:没有看到任何应用程序(权限问题?)

  •  6
  • Facundo Casco  · 技术社区  · 15 年前

    我有一个网站,Django运行一些自定义应用程序。我没有使用django orm,只是视图和模板,但现在我需要存储一些信息,所以我在一个应用程序中创建了一些模型,并启用了管理员。

    问题是,当我登录管理员时,它只会说“你没有编辑任何内容的权限”,甚至页面中也不会显示auth应用程序。我将使用syncdb创建的同一个用户作为超级用户。

    在同一个服务器上,我有另一个网站,使用管理员只是很好。

    将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一起使用

    有什么办法让我找到解决办法吗?

    谢谢。

    更新:它在开发服务器上工作。我敢打赌这和文件系统权限有关,但我就是找不到它。

    更新2: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:更多信息

    • /var/django/gpx公司/ 初始化 .py存在且为空
    • 我从/var/django/gpx目录运行python manage.py
    • 该站点是gpx,其中一个应用程序是可控制的,位于/var/django/gpx/contable
    • 用户apache是webdev组,所有这些目录和文件都属于该组并具有rw权限

    更新4:确认apache和runserver的设置文件相同(已重命名,但都已断开)

    更新5:/var/django/gpx/contable/ 初始化 Py存在

    这是url.py的relevan部分:

    urlpatterns = patterns('',
                           (r'^admin/', include(admin.site.urls)),
                          )
    urlpatterns += patterns('gpx',
       (r'^$',                         'menues.views.index'),
       (r'^adm/$',                     'menues.views.admIndex'),
    
    6 回复  |  直到 11 年前
        1
  •  22
  •   Matthew Talbert    13 年前

    希望这对某些人有所帮助,但我们也遇到了同样的问题,因为有人向settings.py添加了不同的身份验证后端,而没有保留默认的modelbackend。将设置更改为:

    AUTHENTICATION_BACKENDS = (
        'auth.authentication.EmailBackend',
        'django.contrib.auth.backends.ModelBackend',
    )
    

    为我们修好了。

        2
  •  12
  •   John Debs    15 年前

    听起来你好像没有向管理员注册任何应用程序(中的步骤5 this overview )

    尝试添加行 admin.autodiscover() 到您的main url.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) .

        3
  •  2
  •   aldux    15 年前

    尝试访问您的数据库,并在表auth_user中确保fiels_staff、is_active和is_superuser对您的用户标记为true(1)。

        4
  •  2
  •   cethegeek    15 年前

    确保已将应用程序添加到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>
    

    还有,你的蟒蛇是什么?

    setenv的台词是什么?它指向的模块是否与您开发的模块完全相同?你确定你的蟒蛇身上有 mysite.settings 像你认为的那样?

    b)您在生产中遇到pythonpath问题,找不到应用程序。这会产生更严重的错误,尽管…


    问题:

    • /var/django/gpx有一个 初始化 Py正确吗?
    • /var/django/gpx/settings.py与manage.py runserver使用的文件相同吗?
    • 您的应用程序在/var/django/的名称是什么?
    • 运行apache的用户是否拥有对所有这些目录的权限?
        5
  •  0
  •   uri.lazar    14 年前

    在旧的django 0.96安装上安装django 1.1时,我们遇到了同样的问题

    我们重新安装时就解决了

        6
  •  0
  •   Mohamed Turki    11 年前

    我有同样的问题,我的设置文件如下:

        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