Пожалуйста, помогите. Я получаю form.is_valid() false
Я делаю функциональность загрузки файла и получаю form.is_valid() как false, а также получаю GET запрос вместо POST запроса. Вот мой вид
@require_http_methods("POST")
def userlistfileupload(request):
'''
This function is created to upload userlist
'''
form = UserlistUploadFileForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect(reverse('account:userlist'))
else:
form = UserlistUploadFileForm()
return render(request, 'auth/upload_userlist.html',{'form':form})
Это класс моей формы для загрузки файла.
class UserlistUploadFileForm(forms.Form):
'''
This function is created for Userlist file upload functionality
'''
userlistfile = forms.FileField()
def __init__(self, *args, **kwargs):
super().__init__(*args, **kwargs)
self.helper = FormHelper(self)
self.helper.form_method = 'post'
self.layout = Layout(
'userlistfile',
)
self.helper.add_input(Submit('submit' , 'Upload Userlist'))
def clean_file(self):
f = self.cleaned_data("file")
if not f.endswith('.csv'):
raise forms.ValidationError('Please Upload csv file only.')
Это мой шаблон : Upload_userlist.html
{% extends "base.html" %}
{% load crispy_forms_tags %}
{%load permission_tags%}
{%block title%}Upload User List{%endblock%}
{% block content %}
{% if user|has_role:'posh_admin' %}
<div class="row">
<div class="col"></div>
<div class="col">
<h3 class="text-center">Upload Userlist</h3>
<form method="POST" enctype="multipart/form-data">
{% csrf_token %}
{% crispy form %}
</form>
</div>
<div class="col"></div>
</div>
{% endif %}
{% endblock %}
Это моя часть userlist.html. Я использовал хрустящие формы, пожалуйста, проверьте
<h5>User List</h5>
</div>
<div class align="right">
<a class="btn btn-primary " href = {% static 'userlist_template.csv' %}>Download template</a>
<a class="btn btn-primary " href = {% url 'account:fileupload'%} >Upload Userlist</a>
</div>