2013-03-25 1 views
1
class Application(models.Model): 
    name = models.CharField(max_length=100) 
    icon_url = models.CharField(max_length=100) 
    app_url = models.CharField(max_length=200) 

Я хотел бы добавить еще одно поле для required_permission, которое должно быть иностранным ключом к разрешению. Как должно выглядеть это полевое определение?Django Foreign Ключ к разрешению

Смысл этого в том, что в шаблоне, я могу использовать что-то вроде этого (псевдо код)

{% for app in application_list %} 
    {% if user_has_permission(app.required_permission) %} 
     Show App 
    {% endif %} 
{% endfor %} 
+0

Функция вызова такого типа не работает в шаблоне, вам нужно использовать шаблонный тег. –

ответ

0

Ваш required_permission может быть CharField. Пока вы можете создать список разрешений для использования с этой функцией.

has_perms (perm_list, OBJ = Нет)
Возвращает True, если пользователь имеет каждый из указанных разрешений, где каждый завивку в формате "<app label>.<permission codename>". Если пользователь неактивен, этот метод всегда будет возвращать значение False.

Если объект obj передан, этот метод не будет проверять разрешения для модели , но для конкретного объекта.

Обратите внимание, что вы не можете вызывать функцию, которая принимает параметр в шаблонах Django, вы должны написать тег шаблона.