You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Django导入更新表单报错:无法从users.forms导入UserRegisterForm

Django导入错误:无法从'users.forms'导入'UserRegisterForm'

首次学习Django,严格按照教程操作未跳过任何步骤,却遇到报错:无法从'users.forms'导入'UserRegisterForm'。以下是相关代码及排查解决建议:

相关代码

views.py

from django.shortcuts import render, redirect
from django.contrib import messages
from .forms import UserRegisterForm

def register(request):
    if request.method == 'POST':
        form = UserRegisterForm(request.POST)
        if form.is_valid():
            form.save()
            username = form.cleaned_data.get('username')
            messages.success(request, f'Account created for {username}!')
            return redirect('blog-home')
    else:
        form = UserRegisterForm()
    return render(request, 'users/register.html', {'form': form})

forms.py(原代码存在缩进问题)

from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm

class UserRegisterForm(UserCreationForm):
email = forms.EmailField()

    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']

解决建议

  • 修正代码缩进:Python对缩进要求严格,原forms.py中email = forms.EmailField()和class Meta块的缩进错误,会导致UserRegisterForm类定义不完整。修正后的代码应为:
from django import forms
from django.contrib.auth.models import User
from django.contrib.auth.forms import UserCreationForm

class UserRegisterForm(UserCreationForm):
    email = forms.EmailField()

    class Meta:
        model = User
        fields = ['username', 'email', 'password1', 'password2']
  • 确认文件位置与命名:检查forms.py是否和views.py处于同一users应用目录下,且文件名拼写正确(注意是forms.py而非form.py)。

  • 验证应用配置:确保users应用已添加到项目settings.py的INSTALLED_APPS列表中:

INSTALLED_APPS = [
    'users',
    # 其他项目应用...
]
  • 重启开发服务器:修改代码后可能存在服务器未自动重载的情况,重启Django开发服务器再尝试。

内容的提问来源于stack exchange,提问作者user22393268

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 15:42:40