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

Django表单未渲染故障:仅显示模板硬编码HTML内容

解决Django表单未渲染问题

核心问题:表单字段定义错误

你的forms.py存在基础错误:forms.Textarea是表单控件(widget),不是字段类型。Django无法识别这种错误定义,自然没法渲染表单。

修复后的forms.py

from django import forms

class BulkModulImport(forms.Form):
    text = forms.CharField(
        widget=forms.Textarea(attrs={'class': 'form-control', 'rows': '4'})
    )

视图逻辑补全

views.py里还有两处问题:

  1. POST请求表单验证失败时,没有把表单对象传回模板,会导致页面依然无表单
  2. 数据处理函数定义在if form.is_valid()内部不符合规范,且保存数据时误用了原未处理的文本行

修复后的views.py

from django.shortcuts import render, redirect, reverse
from django.utils import timezone
from django.contrib import messages
import re
from .forms import BulkModulImport
from .models import Modul

# 把处理函数移到外部,更符合代码规范
def remove_dots_and_numbers(text):
    lines = text.split('\n')
    updated_lines = []
    for line in lines:
        # 移除行尾的点和数字,同时去掉首尾空白
        updated_line = line.replace(' .', '')
        updated_line = re.sub(r'\s*\d*$', '', updated_line).strip()
        # 跳过空行和指定标识行
        if updated_line and "Module der Lehreinheit" not in updated_line:
            # 使用处理后的文本保存数据
            Modul(
                title=updated_line,
                proposer=request.user,
                dozent=None,
                created_date=timezone.now(),
                description=""
            ).save()
            updated_lines.append(updated_line)
    return updated_lines

def bulk_modul_import(request):
    if request.method == "POST":
        form = BulkModulImport(request.POST)
        if form.is_valid():
            remove_dots_and_numbers(form.cleaned_data['text'])
            messages.success(request, '模块批量导入成功!')
            return redirect(reverse('modul_list'))
        # 表单验证失败时,带错误信息传回模板
        return render(request, 'score/bulk_import.html', {'form2': form})
    else:
        form2 = BulkModulImport()
        return render(request, 'score/bulk_import.html', {'form2': form2})

模板确认

你的bulk_import.html写法无问题,修复上述代码后,表单即可正常渲染。若需要更精细的样式控制,也可以用{{ form2.as_p }}或手动遍历字段渲染。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 06:32:46