将Django的AllAuth与Jinja2一起使用?

时间:2017-07-18 18:45:50

标签: django-templates jinja2 django-allauth allauth

为了从Django模板迁移到Jinja2,我遇到了一些问题。不幸的是(令人惊讶的是)我找不到太多关于此的信息。

主要问题是标签:

<a class="ui twitter button" href="{% provider_login_url "twitter" method="oauth2" next="/photos/new" %}">

Jinja2不会认出来:

django.template.exceptions.TemplateSyntaxError: ("Encountered unknown tag 'provider_login_url'.

必须有人设法完成这项工作。难道没有一种简单的方法可以使模板标签可用于jinja2吗?使第三方库与jinja2一起使用的通用方法是什么?

1 个答案:

答案 0 :(得分:0)

这是我使用的(注册为jinja2的func),不确定它是否100%作为本机标签,但我还没有任何问题。

def provider_login_url(request, provider_id, **kwargs):
    provider = providers.registry.by_id(provider_id) 
    query = kwargs
    if 'next' not in query:
       next_ = request.GET.get('next')
       if next_:
           query['next'] = next_
    else:
        if not query['next']:
        del query['next']
    return provider.get_login_url(request, **query)