上传图片后获得"the field name is required"



在将图像上传到表单后,当我提交表单时,它仍然显示"字段是必需的"错误在模型中.py:

class Members(models.Model):
image=models.ImageField(upload_to="images/",default='')

形式.py:

class CreateOne(forms.Form):
image=forms.ImageField(required=True)

在create.html中:

<form class="form-inline"  action="create" method="POST" 
enctype="multipart/form-data" novalidate>

在视图中.py:

def create(request):
member = Members(image=request.FILES['image'])
if request.method == 'POST':
form = forms.CreateOne(request.POST)
if form.is_valid():            
member.save()
return redirect('/')
else:
form = CreateOne()

我认为您理解以错误的方式使用Form的方法。这种Form的想法是,当您编写some_form.save()时,它会进行更改(例如,创建一个模型实例并将其保存到数据库中(。

由于大多数表单(可能像这一个(都与单个模型相关,Django有一个ModelForm,它提供了额外的便利:

class CreateOne(forms.ModelForm):
image=forms.ImageField(required=True)
class Meta:
model = Members
fields = ['image']

然后,我们可以创建一个视图,在有效表单的情况下创建一个实例:

def create(request):
if request.method == 'POST':
form = forms.CreateOne(request.POST, request.FILES)
if form.is_valid():            
form.save()
return redirect('/')
else:
form = CreateOne()
return render(request, 'some_template.html', {'form': form}

如果form有效,您可能也不想重定向,因为那时您可能想向用户反馈表单无效(并显示相应的错误(。

相关内容

  • 没有找到相关文章

最新更新