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

Django表单报错Key 'current'未在InputForm中找到问题求助

Django表单无法识别模型字段问题修复方案
  • 核心错误原因:表单类继承错误。你在forms.py中定义的InputForm继承了forms.Form(普通表单类),这类表单不会读取Meta配置项中的model和fields属性,因此不会自动生成对应模型字段,才会出现找不到current字段、可选字段列表为空的报错。基于模型生成表单必须继承forms.ModelForm。
  • 其他附带问题:
    1. 自定义HTML表单需保证所有提交字段的name属性和你在fields中指定的模型字段名完全一致,大小写、拼写不能有偏差
    2. 视图代码中print( form.instance.my_field)属于无效代码,你的flightInfo模型没有my_field字段,运行到此处会触发新的报错,建议直接删除该行

修复后代码示例

修复后的forms.py

from django import forms
from .models import flightInfo

class InputForm(forms.ModelForm):
    class Meta:
        model = flightInfo
        fields = ['airCode', 'start_date', 'day7', 'current']

优化后的views.py参考

from django.shortcuts import render
from .models import *
from django.http import HttpResponse
from .forms import InputForm

def detail(request):
    print(request.GET)
    print(request.POST)
    if request.method == 'POST':
        print(request.POST.get('current'))
        form = InputForm(request.POST)
        print(form['current'].value())
        print(form.data['current'])
        if form.is_valid():
            print(form.cleaned_data['current'])
            form.save()
            return HttpResponse('<h1>提交成功</h1>')
        # 表单验证不通过时可以打印错误排查问题
        print(form.errors)
        return HttpResponse('<h1>表单验证失败</h1>')
    # GET请求场景处理
    form = InputForm()
    return render(request, '你的模板路径.html', {'form': form})

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.07 13:27:02