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

Django报错:module 'django.forms.forms' has no attribute 'HiddenInput' 求助

解决Django中module 'django.forms.forms' has no attribute 'HiddenInput'的问题

嘿,这个问题我之前也踩过坑!根源其实出在你的导入方式上,咱们一步步理清楚:

问题原因

你写的from django.forms import ModelForm, forms里,第二个forms导入的是django.forms.forms这个子模块——它只负责承载表单的基础类(比如Form),而像HiddenInput、Textarea这类表单组件(widgets),根本不在这个子模块里,它们都藏在django.forms.widgets模块中。所以当你调用forms.HiddenInput()时,自然会找不到这个属性啦。

另外还有个小细节要提醒你:你写的forms.TextArea()是错的,Django里这个组件的正确名称是Textarea(最后一个字母a是小写),不改的话之后还会报新错误哦。

两种修正方案

方案一:改用顶层forms模块导入

直接从django导入整个forms模块,它会自动包含所有widgets组件,用起来更省心:

from django import forms
from django.forms import ModelForm
from comments.models import Comment

class CommentForm(ModelForm):
    class Meta:
        model = Comment
        fields = ['video', 'text']
        widgets = {'video': forms.HiddenInput(), 'text': forms.Textarea()}

方案二:单独导入widgets模块

如果想保持原有导入结构,直接导入widgets模块来调用组件就行:

from django.forms import ModelForm, widgets
from comments.models import Comment

class CommentForm(ModelForm):
    class Meta:
        model = Comment
        fields = ['video', 'text']
        widgets = {'video': widgets.HiddenInput(), 'text': widgets.Textarea()}

两种方案都能解决你的问题,选哪种全看你的代码习惯~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.25 03:24:01