Будет ли это взломать для разрешения на объект в Django работать? - PullRequest
0 голосов
/ 13 марта 2010

Согласно документации, у класса могут быть разрешения мета-опций, описанные так:

Options.permissions

Дополнительные разрешения для входа в таблицу разрешений при создании этого объекта. Разрешения на добавление, удаление и изменение автоматически создаются для каждого объекта, для которого установлен администратор. В этом примере указывается дополнительное разрешение, can_deliver_pizzas:

permissions = (("can_deliver_pizzas", "Can deliver pizzas"),)

Это список или кортеж из 2-х кортежей в формате (код_правки, human_readable_permission_name).

Можно ли определить разрешения во время выполнения с помощью:

permissions = (("can_access_%s" % self.pk, /
                "Has access to object %s of type %s" % (self.pk,self.__name__)),)

Ответы [ 2 ]

0 голосов
/ 13 марта 2010

Нет, это не сработает по ряду причин. Во-первых, как указывает Феликс, у вас нет доступа к self в этот момент. Во-вторых, как указано в документации, которую вы цитировали, это список элементов для ввода в таблицу разрешений - другими словами, это фактические строки базы данных, которые создаются manage.py syncdb.

0 голосов
/ 13 марта 2010

Я думаю, что в контексте класса Meta у вас нет доступа к self.
Если вы ищете решение для приложения администратора, прочитайте это о разрешениях на уровне строк .

Там также говорится:

Для общедоступных (т. Е. Не администраторских) представлений вы, конечно, можете свободно применять любую форму логики проверки разрешений, которая требуется вашему приложению.

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