Django: Загрузка файла на Firebase и сохранение метаданных файла в Sqlite3
У меня есть приложение Django, я пытаюсь загрузить документ на firebase. Он загружается правильно, но метаданные не загружаются в мою базу данных sqlite3.
def uploadProject(request):
print("INSIDE UPLOAD VIEW") #Prints
if request.method == 'POST':
print("INSIDE POST REQUEST") #Does not print
form = UploadProjectForm(request.POST, request.FILES)
if form.is_valid():
file = request.FILES['file']
file_url = upload_to_firebase(file)
metadata = form.save(commit=False)
metadata.file_url = file_url model
metadata.save()
return redirect('upload-project')
else:
form = UploadProjectForm()
return render(request, 'base/upload_project.html', {'form': form})
Это мой файл upload.js, который обрабатывает отправку формы
import { ref, uploadBytesResumable, getDownloadURL } from "https://www.gstatic.com/firebasejs/9.6.1/firebase-storage.js";
import { storage } from "./firebase-config.js";
document.querySelector('form').addEventListener('submit', async (e) => {
e.preventDefault();
const fileInput = document.querySelector('input[type="file"]');
if (fileInput.files.length === 0) {
alert('No file selected.');
return;
}
const file = fileInput.files[0];
const storageRef = ref(storage, `uploads/${file.name}`);
const uploadTask = uploadBytesResumable(storageRef, file);
uploadTask.on('state_changed',
(snapshot) => {
// Observe state change events such as progress, pause, and resume
const progress = (snapshot.bytesTransferred / snapshot.totalBytes) * 100;
console.log('Upload is ' + progress + '% done');
},
(error) => {
// Handle unsuccessful uploads
console.error('Upload failed:', error);
},
async () => {
// Handle successful uploads on complete
const downloadURL = await getDownloadURL(uploadTask.snapshot.ref);
console.log('File available at', downloadURL);
}
); });
Это мой файл forms.py
class UploadProjectForm(ModelForm):
file = forms.FileField(required=True)
class Meta:
model = Document_Metadata
fields = ['name', 'uploader_id', 'course_id', 'description', 'status']