Django模板动态加载库

时间:2014-07-28 14:33:29

标签: django

是否可以根据用户权限加载不同的模板库?

{% extends "base.html" %}
{% load static %}
{% if perms.app.my_permission %}
{% load lib1 %}
{% else %}
{% load lib2 %}
{% endif %}
<html>
<body>
    <h1>{% version %}</h1>
</body>
</html>

模板加载器不会抱怨上面的内容,但我的标签总是引用lib2而不是lib1。

例如: 应用程序/ templatetags / lib1.py

@register.simple_tag()
def version():
    return 'I am from lib1'

应用程序/ templatetags / lib2.py

@register.simple_tag()
def version():
    return 'I am from lib2'

无论用户是否允许,我都会

我来自lib2

1 个答案:

答案 0 :(得分:0)

是的,你可以。

{% extends "base.html" %}
{% load static %}

{% if perms.app.my_permission %}
  {% load lib1 %} 
  I will be here only for logged in users with the correct permission
{% else %}
  {% load lib2 %}
  I am for everyone else
{% endif %}

https://docs.djangoproject.com/en/1.6/topics/auth/default/#permissions