I am trying to upload a file to database from frontend HTML form. Here is the code:
createuser.html
<form method="POST" enctype="multipart/form-data" action="">
<input type="file" name="myfile">
<input type="submit">
</form>
views.py
@login_required(login_url='login')
def createuser(request):
authority = Authority.objects.only('authority')
designation = Authority.objects.only('designation')
if request.method == 'POST':
if request.POST:
post = CustomUser()
post.first_name = request.POST.get('first_name')
post.middle_name = request.POST.get('middle_name')
post.last_name = request.POST.get('last_name')
post.emp_code = request.POST.get('emp_code')
post.email = request.POST.get('email')
passwrd = request.POST.get('password')
post.password = make_password(passwrd)
post.joining_date = request.POST.get('joining_date')
# post.authority = request.POST.get('authority')
# post.designation = Designation.objects.get(designation=request.POST.get('designation'))
post.language = request.POST.getlist('lang')
post.address = request.POST.get('address')
post.education = request.POST.get('education')
post.blood_group = request.POST.get('blood_group')
post.emergency_contact = request.POST.get('emergency_contact')
post.relation = request.POST.get('relation')
post.created_by = request.user
myfile = request.FILES['myfile']
# generates multivalue dict error as multivalueDict is empty
print(myfile)
# fs = FileSystemStorage()
# filename = fs.save(myfile.name, myfile)
# uploaded_file_url = fs.url(filename)
# print(uploaded_file_url)
post.save()
s = '/usermanage/userdashboard'
return redirect(s)
userforminfo = CreateUser.objects.all()
return render(request, 'usermanage/createuser.html', context={"userforminfo": userforminfo, "authority":authority, "designation":designation})
Output
<MultiValueDict: {}>
The output must be a file which I am selecting. Is there any way I could fix this?