2017-07-18 47 views
0

为了从Django模板转移到Jinja2,我进入了一些问题。不幸的是(令人惊讶的是)我找不到这方面的很多信息。与Jinja2一起使用Django的AllAuth?

的主要问题是标签:

<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一起工作的通用方法是什么?

回答

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)