заменить Добавить на Get на сайте администратора django - PullRequest
0 голосов
/ 22 июля 2011

У меня есть модель, которую я не хочу, чтобы пользователь вручную добавлял / удалял объекты.Вместо этого я хочу иметь некоторую кнопку Get, которая однажды нажала, она выполняет некоторый код и автоматически обновляет базу данных.Я мог делать подобные вещи, добавив свое собственное действие администратора.Однако добавление действия администратора по умолчанию означает, что вам нужно иметь хотя бы один объект для вашей модели, вы выбираете этот объект и выполняете некоторые действия.Я хочу иметь возможность выполнять свои собственные действия на пустой модели (если я смогу заменить кнопку «Добавить» на кнопку «Получить» на странице индекса, это будет идеально).Есть ли способ сделать это?Спасибо!

Ответы [ 2 ]

0 голосов
/ 22 июля 2011
  1. Вы можете запретить пользователям добавлять новые объекты, удалив разрешение «Можно добавить ModelName» у этого пользователя.Однако, если они являются суперпользователем, который на самом деле не помешает им сделать это.

  2. Административные действия предназначены для запуска в определенных экземплярах модели;если это не то, что делает ваш код, вы, вероятно, не должны идти по этому пути.Вы можете переопределить шаблон администратора для своей модели и добавить новую кнопку или ссылку в свой пользовательский вид.Вы также можете полностью удалить кнопку «Добавить», удалив ее из шаблона, но я бы рекомендовал вместо этого использовать разрешения.

0 голосов
/ 22 июля 2011

Вы можете переопределить метод add_view административной модели django и делать все, что вам хотелось, чтобы это представление делало, если хотите. Просмотрите код ModelAdmin, и вы увидите, что он делает по умолчанию

Вы также можете взглянуть на этот проект: https://github.com/imtapps/django-admin-ext и посмотреть пример того, как зарегистрировать свои собственные URL-адреса для администратора ... чтобы вы могли сделать свой вид что-то вроде admin / myproject / myapp / смоделируйте / получите и сделайте так, как вам хочется ...

...