У меня есть класс разрешений, для которого мне нужно создать статический метод, чтобы получить соответствующий элемент на основе метода POST в моем views.py
. Выбор осуществляется с помощью флажков, в которых вы можете выбрать любую из них, пару или все из них, исходя из ваших предпочтений. Это создает список строк (u'OWNER «), которые должны быть обработаны в статическом методе и возвращает соответствующий Permissions.OWNER
, Permissions.HR
, Permissions.USER_ADMIN
Сравните список строк с значениями модели и получите соответствующее поле
Мои views.py
» ы POST
метод выглядит следующим образом:
permissions = self.request.get_all('permissions')
user.new_permission = Permissions.get_permission(permissions)
Модель выглядит следующим образом:
class Permissions(object):
OWNER = 'OWNER'
HR = 'HR'
USER_ADMIN = 'USER_ADMIN'
descriptions = {
OWNER: """Company owner (full admin)""",
HR: """Human Resources administrator (access to special fields within job and submissions)""",
USER_ADMIN: """Add/Delete users, change user permissions""",
}
То, что я до сих пор на статический метод:
@staticmethod
def get_permissions(permissions):
new_perms = []
for permission in permissions:
name = permission
if permission ==
new_perms.append(permission)
return new_perms
Я действительно не знаю, как сравнить строку со значением в модели ... И я не уверен, правильно ли я назвал вопрос.
Спасибо заранее,
Борислав
Благодарим вас за ответ. Извините за плохое объяснение. Вы правы, класс Permissions собирает все объекты Permission (индивидуальные для каждой компании, другую модель). Поэтому мой вопрос заключается в том, как я могу получить соответствующее разрешение из класса Permissions (я объяснил), проверив флажки в шаблоне. Они называются/используются Permissions.NAME (поэтому Permissions.USER_ADMIN, Permissions.HR и т. Д.) В других частях кода, и они дают вам определенные привилегии (добавлять пользователей и т. Д.). Я получаю список проверенных элементов, но как их сопоставить с правильным разрешением? –
См. Дополнения к ответам. Опять же, это довольно простые методы python. –