强制Django登录表单接受超过30个字符的用户名

强制Django登录表单接受超过30个字符的用户名,django,django-registration,Django,Django Registration,我正在尝试使用电子邮件的用户名,并已得到它的工作几乎完美。我遵循以下指示: 问题是,我的登录表单仍然抛出一个错误,说用户名只能是30个字符。我已将输入表单更改为接受75个字符,并将数据库表更改为。但Django的某些人仍在阻止这一点 有什么想法吗 更新: <form method="post" action="." class="full"> {% csrf_token %} <ul> {% if form.non_field_errors %}<li>

我正在尝试使用电子邮件的用户名,并已得到它的工作几乎完美。我遵循以下指示:

问题是,我的登录表单仍然抛出一个错误,说用户名只能是30个字符。我已将输入表单更改为接受75个字符,并将数据库表更改为。但Django的某些人仍在阻止这一点

有什么想法吗

更新:

<form method="post" action="." class="full">
{% csrf_token %}
<ul>
    {% if form.non_field_errors %}<li>{{ form.non_field_errors }}</li>{% endif %}
    <li>
        {{ form.username.errors }}
        <label for="id_username">Email/Username</label>
        <input type="text" id="id_username" name="username" maxlength="75">
    </li>
    <li>
        {{ form.password.errors }}
        <label for="id_password">{{ form.password.label }}</label>
        {{ form.password }}
    </li>
</ul>
<input type="submit" value="Login">
<a href="{% url django.contrib.auth.views.password_reset %}">Forgot your password?</a>
</form>

{%csrf_令牌%}
    {%if-form.non_-field_-errors%}
  • {{form.non_-field_-errors}
  • {%endif%}
  • {{form.username.errors} 电子邮件/用户名
  • {{form.password.errors} {{form.password.label} {{form.password}}

请检查,您是否将django.contrib.auth.models.User中用户名的字段长度从30更改为75,然后从数据库中删除旧的auth表,通过运行manage.py sqlall获取新的SQL以创建auth表,并执行此SQL以创建具有更新字段长度的新表


(因为这只是一个后续问题,我会在评论中留下它,但还没有足够的代表性…

最后,我通过将其添加到我的顶级init

# Added so the login field can take email addresses longer than 30 characters
from django.contrib.auth.forms import AuthenticationForm

AuthenticationForm.base_fields['username'].max_length = 150
AuthenticationForm.base_fields['username'].widget.attrs['maxlength'] = 150
AuthenticationForm.base_fields['username'].validators[0].limit_value = 150

@布伦登:你正在使用的修订版
表格中到底有什么?请更新问题以包含表单类。是否有一种
clean
方法可以截断长输入?请检查,您是否将django.contrib.auth.models.User中用户名的字段长度从30更改为75,然后从数据库中删除旧的auth表,通过运行manage.py sqlall获取新的SQL来创建auth表,并执行此SQL以创建具有更新字段长度的新表?我认为缺少的步骤是在django.contrib.auth.models中将用户从30更改为75。。我将把不需要接触实际django代码就可以做到这一点的代码放在哪里?