使用 Django 在一个页面上登录和注册表单

Posted

技术标签:

【中文标题】使用 Django 在一个页面上登录和注册表单【英文标题】:Login and registration form on one page with Django 【发布时间】:2011-10-06 01:12:04 【问题描述】:

我已经坚持了一段时间。我试图将登录和注册表单放在同一页面上,但是根据我尝试的方法,我遇到了多个错误。该页面实际上能够很好地加载,但是两个表单字段都不会加载。然后当我点击注册或登录按钮(都输入提交)时,我最近收到了一个与 csrf 相关的错误。任何有关如何在同一页面上实现这两种表单的建议将不胜感激。

【问题讨论】:

显示你当前的代码,你可以暂时禁用crsf中间件进行调试。 您找到解决方案了吗?我也遇到了同样的问题。 是的,也只是偶然发现了这个问题,除了完全禁用保护之外没有其他解决方案。 【参考方案1】:

我认为这可能是 csrf token not found 错误。如果您将 django 1.3 与 csrf 中间件一起使用,则必须在每个表单中添加 csrf token % csrf_token % 标签,如下所示:

% extends "admin/base.html" %
% load i18n %

% block content %
<form method="post" action=".">% csrf_token %

   form.as_p 

  <input type="submit" value="% trans 'Submit' %" />
</form>
% endblock %

【讨论】:

我正确使用了 csrf 令牌,至少按照您描述的方式,所以不幸的是,这是另一个问题。你知道有人用django在同一页面上成功创建了注册和登录区域吗?

以上是关于使用 Django 在一个页面上登录和注册表单的主要内容,如果未能解决你的问题,请参考以下文章

如何将 Django-Registration-Redux 注册表单放在其他页面上?

如何使登录表单在 Django 的整个站点上可用

如何使用模板在 WooCommerce 的两个不同页面上显示登录和注册表单

django项目一:基于django2.2可重用登录与注册模块-注册页面

Django - 在多个页面上重用用户注册表单的系统架构

django框架学习:二十四.django表单post登录案例