Ich habe seit einiger Zeit mit der Validierung von Dateien zu kämpfen, aber ich denke, ich bin auf dem richtigen Weg. Ich versuche eine Audiodatei "Sound" zu validieren, wenn ich ein Formular posten. Immer wenn ich das Formular ausprobiere, bekomme ich eine 'InMemoryUploadedFile' object has no attribute 'content'
. Das Problem scheint bei form.is_valid() zu passieren. Bisher habe ich in Formen:Django Datei Validierungsfehler
class PostForm(forms.ModelForm):
def clean_sound(self):
file = self.cleaned_data.get('sound',False)
if file:
if not file.content-type in ["audio/mpeg","audio/mp3", "audio/wav"]:
raise ValidationError("Content-Type is not mpeg")
if not os.path.splitext(file.name)[1] in [".mp3",".wav"]:
raise ValidationError("Doesn't have proper extension")
return file
else:
raise ValidationError("Couldn't read uploaded file")
class Meta:
model = Places
fields = [
'usersave',
'title',
'longitude',
'latitude',
'sound',
]
in der Ansicht:
@login_required(login_url='/accounts/login/')
def post_create(request):
form= PostForm(request.POST or None, request.FILES or None)
if form.is_valid():
# handle_uploaded_file(request.FILES['sound'])
instance = form.save(commit=False)
instance.save()
messages.success(request, 'Successfully Created')
return HttpResponseRedirect('/')
context= {
'form': form,
}
return render(request, 'location/post_form.html',context,)
Ich bin nicht sicher, was die ‚InMemoryUploadedFile‘ Fehler ist, und würde es begrüßen, viel irgendwelche Ratschläge, die mir in der zeigen könnte richtige Richtung!