gpt4 book ai didi

django - 即使文件已上传,也会获取 "This field is required"

转载 作者:行者123 更新时间:2023-12-03 15:13:31 25 4
gpt4 key购买 nike

我是 Django 的新手,正在尝试一个简单的表单。我有一个模型类“Profile”,定义了一个文件字段(schema_file),还有一个 ModelForm 类。当我尝试在浏览器中创建新配置文件时,即使我在文件选择器中选择了一个文件,我在 schema_file 字段上仍收到错误“此字段是必需的”,有什么想法吗?我的类(class)如下:

class Profile(models.Model):
class Meta:
db_table = 'target_profiles'

class SchemaType:
XML = 1
CSV = 2
XLS = 3
JSON = 4
DB = 5
SCHEMA_CHOICES = (
(XML, 'XML'),
(CSV, 'CSV'),
(XLS, 'Excel'),
(JSON, 'JSON'),
(DB, 'Database'),
)

name = models.CharField(max_length=32, unique=True)
description = models.CharField(max_length=128, null=True, blank=True)
schema_type = models.IntegerField(choices=SchemaType.SCHEMA_CHOICES, default=SchemaType.CSV)
schema_file = models.FileField(upload_to='schema_files', max_length=64)


def __unicode__(self):
return self.name

class ProfileForm(forms.ModelForm):
class Meta:
model = Profile

看法:
def add_profile(request):
if request.method == 'POST':
form = ProfileForm(request.POST, request.FILES)
if form.is_valid():
cd = form.cleaned_data
return HttpResponseRedirect('/profiles')
else:
form = ProfileForm()
return render(request, 'profiles/add_profile.html', {'form': form})

最佳答案

由于您还没有发表您的观点,我只能猜测是因为您忘记包含 request.FILES :

form = ProfileForm(request.POST, request.FILES)

也许忘记添加 enctype=multipart/form-data到你的表格。

关于django - 即使文件已上传,也会获取 "This field is required",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16509086/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com