【问题标题】:Use Django's AllAuth with Jinja2?将 Django 的 AllAuth 与 Jinja2 一起使用?
【发布时间】:2017-12-23 19:01:49
【问题描述】:

在从 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 使用模板标签吗?使 3rd 方库与 jinja2 一起使用的通用方法是什么?

【问题讨论】:

    标签: django-templates jinja2 django-allauth


    【解决方案1】:

    这是我使用的(注册为 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)
    

    【讨论】:

      猜你喜欢
      • 2014-11-16
      • 2017-10-31
      • 2012-05-26
      • 2020-10-25
      • 2023-01-16
      • 2013-01-02
      • 1970-01-01
      • 1970-01-01
      • 2013-08-15
      相关资源
      最近更新 更多