查找Django登录页面消息的来源

我创建了一个可用的 Django 应用程序。我正在django-allauth用于实施社交帐户身份验证。

现在,假设我使用id用户没有工作人员访问权限的电子邮件登录我的应用程序,如果我直接打开管理员登录页面,管理员登录页面显示如下:

http://img4.mukewang.com/60c86d7e0001f28504760453.jpg

我的问题是:如何阻止 Django 显示消息“已成功登录为...”?此消息的来源在哪里?


Smart猫小萌
浏览 268回答 3
3回答

莫回无

在成功签约消息是从Django的allauth。它使用消息框架。我建议您将模板代码添加到您的基本模板中以显示消息。这样,消息将在您登录后立即显示,而不是在您直接进入管理员登录时(其中包含显示消息的模板代码)。

千巷猫影

要覆盖它,您需要通过以下方式继承模板 {% extends "admin/login.html" %}然后您需要使用名称覆盖块。{% blocktrans trimmed %} You are authenticated as {{ username }}, but are not authorized to access this page. Would you like to login to a different account? {% endblocktrans %}现在您可以自定义此特定行,然后指向您的函数以加载您的自定义 html 文件而不是标准的管理文件,或者您可以直接编辑 django 包中的 login.html(这不是一个好主意)。要知道它从哪里获取,您可以执行以下操作...$python>>>import sys>>>sys.path = sys.path[1:]>>>import django>>>print(django.__path__)然后进入contrib\admin\templates\admin并手动编辑 login.html。

jeck猫

您所指的文本 ( You are authenticated as ...) 可以在此模板中找到:python3.6/site-packages/django/contrib/admin/templates/admin/login.html您可以覆盖此模板以删除消息。例如,查看此问题以了解如何覆盖 djangos 默认模板。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python