Разделить "admin.py" проекта Django? - PullRequest
5 голосов
/ 19 августа 2011

Я пытаюсь разделить admin.py проекта Django на отдельные файлы, но не удалось.

Информации о том, как ее разделить, я не могу найти в Google, поэтому я должен попробовать себя. Вот что я попробовал:

  1. создайте каталог с именем separated_admins и поместите в него пустое __init__.py
  2. создайте файлы в каталоге separated_admins, примерно так:

    # file my_app/seperated_admins/Some_Model_admin.py
    
    from my_app.models import Some_Model
    from django.contrib import admin
    
    admin.site.register(Some_Model)
    
  3. в admin.py, я добавил такие строки, как:

    from my_app.seperated_admins import *
    

Но я не увидел Some_Model на моем административном сайте. Правильно ли мое решение? Как я могу это исправить?

Ответы [ 2 ]

12 голосов
/ 19 августа 2011

admin - это просто модуль Python.Таким образом, правильный способ разделения будет следующим:

  • Создайте папку с именем admin вместо admin.py
  • Используйте несколько файлов в папке администратора, например, Some_Model_admin.py
  • Создайте __init__.py в папке admin и импортируйте в нее * все файлы.
  • Возможно, вы также захотите включить __all__обеспечить чистый интерфейс.
0 голосов
/ 19 августа 2011

вы должны вместо этого импортировать из Some_Model_admin.

from my_app.seperated_admins.Some_Model_admin import *

все должно работать нормально тогда

в качестве альтернативы вы можете импортировать все разделенные файлы в init, в этом случае

from my_app.seperated_admins import *

должно работать

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...