2012-04-16 4 views
0

Я хотел бы ограничить, какие части интерфейса администратора являются видимыми, к которым относятся сотрудники - например, один человек может нести ответственность только за элементы, связанные с выставлением счетов, а другой только для поддержки клиентов и третий может иметь полный доступ.Доступ к супервизуальному доступу к администратору Django

Я могу предоставить полный доступ, установив is_superuser в True, но я не думаю, что хочу этого (я не хочу, чтобы все сотрудники, имеющие доступ к интерфейсу администратора, были суперпользователями).

Я могу разрешить сотрудникам войти в интерфейс администратора, установив is_staff в True, но как только вошел в систему, у сотрудника нет доступа ни к чему - они видят: «У вас нет разрешения редактировать что-либо».

Я попробовал метод, описанный в this question, но я получаю тот же результат «у вас нет разрешения»:

class MyAdmin(admin.ModelAdmin): 
    def has_edit_permission(self, request): 
     return True 

есть ли способ, чтобы сотрудники смогут получить доступ к части Джанго admin интерфейс без суперпользователя?

ответ

3

Нет такой вещи, как has_edit_permission. Это has_change_permission.

Для получения дополнительной информации о трех методах разрешения, см Django ModelAdmin docs:

ModelAdmin.has_add_permission(self, request)

Если вернуться True при добавлении объекта допускается, в противном случае False.

ModelAdmin.has_change_permission(self, request, obj=None)

Если вернуться True если редактирование obj допускается, False иначе. Если obj - None, следует вернуть True или False, чтобы указать, разрешено ли вообще редактирование объектов этого типа (например, False будет интерпретироваться как означающее, что текущему пользователю не разрешено редактировать какой-либо объект этого типа).

ModelAdmin.has_delete_permission(self, request, obj=None)

Если вернуться True, если удаление obj дозволено, False иначе. Если obj - None, следует вернуть True или False, чтобы указать, разрешено ли вообще удаление таких объектов (например, False будет интерпретироваться как означающее, что текущему пользователю не разрешено удалять любой объект этого типа).

+0

Не знаю, где я получил has_edit_permission from, has_change_permission работает. – Parand

2

За то, что вы хотели сделать, не отменяют has_change_permission - просто дать пользователю (ы) и/или группы пользователей (ы) соответствующее разрешение («Можно изменить крестики») в дополнение к проверка «является персоналом».

+0

Я пробовал это, не работал, возможно, потому что я прищурил детали. Я попробую еще раз. – Parand

Смежные вопросы