i'm trying to create a registration page where on of the multiple users has to be to upload a file when registering a page but after following most tutorials nothing has been fruitful,to ensure the file being uploaded is sucessful kindly assist if you can I have tried the uploaded_file = request.Files['document], fs = FileSystemStorage[], file upload way i have also tried the if request.method == 'POST' and 'document' in request.FILES: uploaded_file = request.FILES['document'] way too among others. so
views.py
def DistributorSignUpView(request):
if request.method == 'POST':
form = DistributorSignUpForm(request.POST, request.FILES)
if form.is_valid():
form.save()
username = form.cleaned_data.get('username')
messages.success(request, 'Account was created for ' + username)
context = ({'form': form})
return render(request, 'dashboard.html', context)
else:
form = DistributorSignUpForm()
return render(request, "distregister.html", context={'form': form})
**forms.py**
class DistributorSignUpForm(UserCreationForm):
Tax_compliance_certificate = forms.FileField(required=True)
class Meta(UserCreationForm.Meta):
model = User
fields = ['username', 'email', 'password1', 'password2', 'Tax_compliance_certificate']
@transaction.atomic
def save(self):
user = super().save(commit=False)
user.is_distributor = True
user.save()
distributor = Distributor.objects.create(user=user)
distributor.Tax_compliance_certificate.add(*self.cleaned_data.get('Tax_compliance_certificate'))
return user
**HTML**
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
<div class="input-group mb-3">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-user"></i></span>
</div>
{{form.username}}
</div>
<div class="input-group mb-2">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-envelope-square"></i></span>
</div>
{{form.email}}
</div>
<div class="input-group mb-2">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-key"></i></span>
</div>
{{form.password1}}
</div>
<div class="input-group mb-2">
<div class="input-group-append">
<span class="input-group-text"><i class="fas fa-key"></i></span>
</div>
{{form.password2}}
</div>
<div class="file-field">
<input type="file" hidden id="file">
<input type="button" value="Upload Tax Cert" onclick="btnFile()"
class="btnFile" name ="document">
<span id="filename" class="filename">No file chosen</span>
</div>
<div class="d-flex justify-content-center mt-3 login_container">
<input class="btn login_btn" type="submit" value="Register Account">
</div>
</form>