Django Admin: не наблюдение какого-либо приложения (проблема разрешения?)

У меня есть сайт с Django, запускающим некоторые пользовательские приложения. Я не использовал Django ORM, просто представление и шаблоны, но теперь я должен сохранить некоторую информацию, таким образом, я создал некоторые модели в одном приложении и включил Администратору.

Проблема состоит в том, когда я вхожу в систему Администратор, она просто говорит, что "У Вас нет разрешения отредактировать что-либо", даже Подлинное приложение не показывает на странице. Я использую того же пользователя, созданного с syncdb как суперпользователь.

В том же сервере у меня есть другой сайт, который использует Администратора очень хорошо.

Используя Django 1.1.0 с Apache/2.2.10 mod_python/3.3.1 Python/2.5.2, с psql (PostgreSQL) 8.1.11 все в хинду 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:подробнее

  • /var/django/gpx/init.py существует и пуст
  • Я запускаю Python manage.py из/var/django/gpx каталога
  • Сайт является GPX, одно из приложений исчисляемо и живет в/var/django/gpx/contable
  • пользовательский апач является webdev группой и всеми этими каталогами, и файлы принадлежат той группе и имеют rw разрешение

ОБНОВЛЕНИЕ 4: подтвержденный, что файл настроек является тем же для апача и runserver (переименовал его и оба повредились),

ОБНОВЛЕНИЕ 5:/var/django/gpx/contable/init.py существует

Это - relevan часть urls.py:

urlpatterns = patterns('',
                       (r'^admin/', include(admin.site.urls)),
                      )
urlpatterns += patterns('gpx',
   (r'^$',                         'menues.views.index'),
   (r'^adm/$',                     'menues.views.admIndex'),
6
задан Facundo Casco 18 December 2009 в 21:06
поделиться

4 ответа

Попробуйте получить доступ к своей базе данных и в таблице auth_user убедитесь, что поля is_staff, is_active и is_superuser помечены как true (1) для ваш пользователь.

2
ответ дан 8 December 2019 в 02:24
поделиться

Убедитесь, что вы добавили свое приложение в 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 в качестве файла, который, по вашему мнению, у вас есть?

б) У вас есть проблема с PYTHONPATH в рабочей среде, и приложения не могут быть найдены. Однако это должно вызвать гораздо более серьезную ошибку ...


Вопросы:

  • / var / django / gpx имеет init .py правильно?
  • / var / django / gpx / settings .py - это тот же файл, который используется при управлении. py runserver?
  • Как называется ваше приложение в / var / django /?
  • Имеет ли пользователь, в котором запущен Apache, права доступа ко всем этим каталогам?
2
ответ дан 8 December 2019 в 02:24
поделиться

Похоже, вы не зарегистрировали никаких приложений у администратора (шаг 5 в этого обзора ).

Попробуйте добавить строку admin.autodiscover () в ваш основной urls.py, предварительно сделав из 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) .

12
ответ дан 8 December 2019 в 02:24
поделиться

Мы столкнулись с той же проблемой при установке django 1.1 поверх старой установки django 0.96

, она была решена, когда мы сделали новую установку

{ {1}}
0
ответ дан 8 December 2019 в 02:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: