Загрузить файл в базу данных в Django
У меня есть кнопка в HTML файле (кнопка Upload):
<form method="POST">
{% csrf_token %}
<div class="form-group" id="form">
<div class="inputs">
<div style="text-align:center;display:block;">
<input type="submit" id="btnupload" class="button btn btn-primary" value="Upload">
</div>
<label for="word1">Word 1</label><br>
<input type="text" style="width: 100%;" id="word1" name="word1" placeholder="Enter first word" required><br><br>
<label for="word2">Word 2</label><br>
<input type="text" style="width: 100%;" id="word2" name="word2" placeholder="Enter second word" required><br><br>
<label for="word3">Word 3</label><br>
<input type="text" style="width: 100%;" id="word3" name="word3" placeholder="Enter third word" required><br><br>
<label for="word4">Word 4</label><br>
<input type="text" style="width: 100%;" id="word4" name="word4" placeholder="Enter fourth word" required><br><br>
<label for="word5">Word 5</label><br>
<input type="text" style="width: 100%;" id="word5" name="word5" placeholder="Enter fifth word" required><br><br>
<div style="text-align:center;display:block;">
<input type="submit" id="btnrun" class="button btn btn-primary" name="tp" value="Run">
</div>
</div>
</div>
</form>
Я хочу, чтобы при нажатии на эту кнопку загружался CSV файл в таблицу DB, которая имеет 5 полей (от word1 до word5 и привязана к пользователю). Я кое-что сделал, но кнопка не работает, что я упускаю?
views.py:
def uploadFile(request):
if request.user.is_authenticated:
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
usr = User.objects.get(username=request.user)
wt = WordsTable()
wt.user = usr
wt.word1 = form.cleaned_data['word1']
wt.word2 = form.cleaned_data['word2']
wt.word3 = form.cleaned_data['word3']
wt.word4 = form.cleaned_data['word4']
wt.word5 = form.cleaned_data['word5']
wt.save()
messages.success(request, "Word added successfully")
return redirect("home")
context = {'form': UploadFileForm()}
return render(request, "uploadFile.html", context)
else:
return redirect("login")
Forms.py
class UploadFileForm(forms.Form):
file = forms.FileField()
word1 = forms.CharField(max_length=100)
word2 = forms.CharField(max_length=100)
word3 = forms.CharField(max_length=100)
word4 = forms.CharField(max_length=100)
word5 = forms.CharField(max_length=100)