Поместите формы администрирования Django в разные файлы - PullRequest
2 голосов
/ 27 мая 2011

В Django возможно ли размещать формы для моделей в интерфейсе администратора в разные файлы для каждого приложения?То же самое, что можно сделать для файлов моделей .

Например, вместо:

app/admin.py<br/>
  class PersonAdmin(admin.ModelAdmin):<br/>
    [...]<br/>
  class CarAdmin(admin.ModelAdmin)<br/>
    [...]<br/>

Я бы получил

app/admin/personadmin.py<br/>
  class PersonAdmin(admin.ModelAdmin):<br/>
    [...]<br/>
app/admin/caradmin.py<br/>
  class CarAdmin(admin.ModelAdmin)<br/>
    [...]<br/>

Я бынравится делать это без изменения кода Django.

Это просто для ознакомления, я знаю, что это не открывает новых возможностей для функционирования сайта.

Любая помощь очень ценится!

Ответы [ 2 ]

4 голосов
/ 27 мая 2011

Вы пытались создать файл __init__.py в папке администратора?

Содержимое будет выглядеть так:

from personadmin import PersonAdmin
from caradmin import CarAdmin

Просто следуйте инструкциям, которые вы указали, но замените «models» на «admin». Попробуйте и посмотрите, работает ли это. Я был бы удивлен, если это не так.

1 голос
/ 27 мая 2011

Вы можете разместить их где угодно, вам просто нужно импортировать их вручную в место, которое загружается во время выполнения (settings.py, urls.py и т. Д.). Вы больше не можете использовать admin.autodiscover(), потому что это именно то, что он делает: импортирует все файлы admin.py во все ваши приложения.

Хотя вы, вероятно, все еще можете использовать admin.autodiscover(), если поместите все свои импортные файлы в сами файлы admin.py. Вам также необходимо добавить все классы в ваших отдельных файлах в __all__ в ваших файлах admin.py, на этом этапе.

...