我想在Django中上传多个文件。下面的代码得到错误Field 'id' expected a number but got b'x89PNGrn'
。我想使用ManyToManyField作为FileField。求你了,我需要解决办法。如有任何帮助,我将不胜感激。
models.py
class FileModel(models.Model):
filename = models.FileField(upload_to='files/')
class FileUploadModel(models.Model):
file = models.ManyToManyField(FileModel)
froms.py
class FileUploadingForm(forms.ModelForm):
file = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple': True}), required=False)
def __init__(self, *args, **kwargs):
super(FileUploadingForm, self).__init__(*args, **kwargs)
class Meta:
model = FileUploadModel
fields = ['file']
views.py
def uploading_view(request):
if request.method == "POST":
form = FileUploadingForm(request.POST, request.FILES)
if form.is_valid():
# post = form.save(commit=False)
for files in request.FILES.getlist("filename"):
f = FileModel(filename=files)
f.save()
form.save()
return HttpResponse('success')
else:
form = FileUploadingForm()
return render(request, 'uploading.html', {'form': form})