首页 > 解决方案 > 缺少参数的 Django allauth 错误?

问题描述

当我尝试提交注册表时出现错误,问题是我不知道如何调试代码,这不是我的,比如包(在这种情况下是allauth):

AttributeError at /users/signup/
'bool' object has no attribute 'get'
Request Method: POST
Request URL:    http://localhost:8000/users/signup/
Django Version: 2.2.4
Exception Type: AttributeError
Exception Value:    
'bool' object has no attribute 'get'
Exception Location: /home/mitko/.local/lib/python3.8/site- 
packages/allauth/account/adapter.py in save_user, line 225

注册.html:

{% extends 'index.html' %}
{% block 'head-title' %}
<title>Вход</title>
{% endblock %}
{% block 'body' %}
{% load i18n %}

{% block content %}

<div id="dialog_signin_part" class="zoom-anim-dialog">
    <div class="small_dialog_header">
        <h3>Регистрирай се</h3>
    </div>
    <p>{% blocktrans %}Вече имаш акаунт? <a href="{{ login_url }}">Логни се тук</a>.{% endblocktrans %}</p>
    <div class="utf_signin_form style_one">
        <div class="tab_container alt">
            <div class="tab_content" id="tab1" style="">
                <p>test</p>
                <form class="signup" id="signup_form" method="post" action="{% url 'account_signup' %}">
                  {% csrf_token %}
                  {{ form.as_p }}
                  {% if redirect_field_value %}
                  <input type="hidden" name="{{ redirect_field_name }}" value="{{ redirect_field_value }}" />
                  {% endif %}
                  <button type="submit">{% trans "Sign Up" %} &raquo;</button>
                </form>

            </div>
        </div>
    </div>
</div>


{% endblock %}
{% endblock %}

adapter.py(第 214-244 行):

def save_user(self, request, user, form, commit=True):
    """
    Saves a new `User` instance using information provided in the
    signup form.
    """
    from .utils import user_username, user_email, user_field

    data = form.cleaned_data
    first_name = data.get('first_name')
    last_name = data.get('last_name')
    email = data.get('email')
    username = data.get('username')
    user_email(user, email)
    user_username(user, username)
    if first_name:
        user_field(user, 'first_name', first_name)
    if last_name:
        user_field(user, 'last_name', last_name)
    if 'password1' in data:
        user.set_password(data["password1"])
    else:
        user.set_unusable_password()
    self.populate_username(request, user)
    if commit:
        # Ability not to commit makes it easier to derive from
        # this adapter by adding
        user.save()
    return user

欢迎任何关于如何调试它的建议。我愿意提供更多信息、文件等,例如如何检查数据包含什么?

标签: pythondjango

解决方案


推荐阅读