将 Django 的 AllAuth 与 Jinja2 一起使用?
Posted
技术标签:
【中文标题】将 Django 的 AllAuth 与 Jinja2 一起使用?【英文标题】:Use Django's AllAuth with 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 一起使用的通用方法是什么?
【问题讨论】:
【参考方案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)
【讨论】:
以上是关于将 Django 的 AllAuth 与 Jinja2 一起使用?的主要内容,如果未能解决你的问题,请参考以下文章
使用 react-google-login 和 django-allauth 刷新令牌
Django从零搭建个人博客 | 使用allauth插件管理用户登录与注册