django 表单未显示,根本原因在于误将 `forms.textarea`(一个 widget)直接用作字段类型;应改用 `forms.charfield` 并通过 `widget` 参数指定 textarea,才能使表单字段正常渲染并绑定数据。
在 Django 中,forms.Textarea 是一个 Widget(控件),用于定义字段在 HTML 中的渲染方式,但它本身 不是字段类。而你在 forms.py 中错误地将其作为字段声明:
# ❌ 错误写法:Textarea 是 widget,不能直接当字段用
text = forms.Textarea(attrs={'class': 'form-control', 'ro
ws': '4'})这会导致 Django 无法识别为有效表单字段,因此 {{ form2 }} 在模板中不渲染任何输入控件(仅输出空字符串),最终页面只显示硬编码的 HTML 和提交按钮。
✅ 正确做法是:使用语义明确的字段类(如 CharField),并通过 widget 参数注入 Textarea 控件:
# ✅ 正确写法:CharField + Textarea widget
class BulkModulImport(forms.Form):
text = forms.CharField(
widget=forms.Textarea(attrs={
'class': 'form-control',
'rows': '4',
'placeholder': '每行一个模块名称,例如:Mathematik I...'
})
)这样,Django 才能:
⚠️ 其他注意事项:
完整修正后的最小可运行示例:
# forms.py
from django import forms
class BulkModulImport(forms.Form):
text = forms.CharField(
widget=forms.Textarea(attrs={
'class': 'form-control',
'rows': 4,
'placeholder': '请输入模块列表,每行一个'
})
)
# views.py(精简版)
from django.shortcuts import render
from django.http import HttpResponseRedirect
from django.contrib import messages
from django.urls import reverse
import re
from django.utils import timezone
from .forms import BulkModulImport
from .models import Modul
def bulk_modul_import(request):
if request.method == "POST":
form = BulkModulImport(request.POST)
if form.is_valid():
raw_text = form.cleaned_data['text']
lines = raw_text.split('\n')
for line in lines:
cleaned_line = re.sub(r'\s*\d*$', '', line.replace(' .', '')).strip()
if "Module der Lehreinheit" not in cleaned_line and cleaned_line:
Modul.objects.create(
title=cleaned_line,
proposer=request.user,
dozent=None,
created_date=timezone.now(),
description=""
)
messages.success(request, '批量导入成功!')
return HttpResponseRedirect(reverse('modul_list'))
else:
form = BulkModulImport() # 注意:变量名统一为 form,模板中仍用 form2 或改为 form
return render(request, 'score/bulk_import.html', {'form2': form})最后检查模板是否加载无误——确保 {% csrf_token %} 存在(你已包含),且未因 JavaScript 阻止表单提交。调试时可在视图中临时添加 print(form) 和 print(form.errors) 辅助定位问题。
# javascript
# java
# html
# go
# 编码
# django
# 表单提交
# red
相关文章:
专业网站制作企业网站,如何制作一个企业网站,建设网站的基本步骤有哪些?
公司网站制作需要多少钱,找人做公司网站需要多少钱?
建站上市公司网站建设方案与SEO优化服务定制指南
建站之星如何开启自定义404页面避免用户流失?
制作公司内部网站有哪些,内网如何建网站?
天津个人网站制作公司,天津网约车驾驶员从业资格证官网?
如何在建站主机中优化服务器配置?
如何通过cPanel快速搭建网站?
如何在云主机上快速搭建多站点网站?
开源网站制作软件,开源网站什么意思?
建站之星多图banner生成与模板自定义指南
如何通过建站之星自助学习解决操作问题?
如何在建站之星网店版论坛获取技术支持?
胶州企业网站制作公司,青岛石头网络科技有限公司怎么样?
如何用好域名打造高点击率的自主建站?
网页设计与网站制作内容,怎样注册网站?
如何快速搭建高效WAP手机网站?
浅析上传头像示例及其注意事项
宝塔建站助手安装配置与建站模板使用全流程解析
如何制作一个表白网站视频,关于勇敢表白的小标题?
如何在宝塔面板创建新站点?
武汉网站制作费用多少,在武汉武昌,建面100平方左右的房子,想装暖气片,费用大概是多少啊?
香港服务器选型指南:免备案配置与高效建站方案解析
如何通过服务器快速搭建网站?完整步骤解析
如何选择最佳自助建站系统?快速指南解析优劣
公司网站设计制作厂家,怎么创建自己的一个网站?
网站制作话术技巧,网站推广做的好怎么话术?
微信小程序 五星评分(包括半颗星评分)实例代码
如何在Windows服务器上快速搭建网站?
网站设计制作企业有哪些,抖音官网主页怎么设置?
建站OpenVZ教程与优化策略:配置指南与性能提升
用v-html解决Vue.js渲染中html标签不被解析的问题
建站之星如何实现网站加密操作?
香港服务器网站推广:SEO优化与外贸独立站搭建策略
网站制作中优化长尾关键字挖掘的技巧,建一个视频网站需要多少钱?
制作网站的软件免费下载,免费制作app哪个平台好?
Bpmn 2.0的XML文件怎么画流程图
建站之星安装后如何自定义网站颜色与字体?
如何在IIS7上新建站点并设置安全权限?
网站制作报价单模板图片,小松挖机官方网站报价?
如何优化Golang Web性能_Golang HTTP服务器性能提升方法
成都网站制作报价公司,成都工业用气开户费用?
北京网站制作网页,网站升级改版需要多久?
如何在万网主机上快速搭建网站?
天河区网站制作公司,广州天河区如何办理身份证?需要什么资料有预约的网站吗?
,制作一个手机app网站要多少钱?
Python路径拼接规范_跨平台处理说明【指导】
小型网站制作HTML,*游戏网站怎么搭建?
如何快速完成中国万网建站详细流程?
TestNG的testng.xml配置文件怎么写
*请认真填写需求信息,我们会在24小时内与您取得联系。