Je construis ma première application Django et je dois avoir une page de téléchargement où je pourrais télécharger plusieurs fichiers dans différents formulaires de téléchargement. J'ai besoin de différentes formes et, je suppose, de modèles puisque selon le formulaire, le fichier doit être stocké dans un dossier respectif dans ma racine média et subir différentes transformations. Je souhaite également que les différents utilisateurs aient différents niveaux d'accès à ces téléchargements.Formulaire de téléchargement Django avec différents modèles
Jusqu'à présent, j'ai quelque chose comme ça (j'ai un peu de code supplémentaire dans les fonctions de views.py qui envoient des données à des trames de données ou d'autres programmes, mais je ne suis pas poster les:
models.py
class Upload(models.Model):
document = models.FileField(storage=OverwriteStorage(),upload_to=get_file_path)
upload_date=models.DateTimeField(auto_now_add =True)
class Upload_variables(models.Model):
variables = models.FileField(storage=OverwriteStorage(),upload_to=get_file_path_var)
upload_date=models.DateTimeField(auto_now_add =True)
forms.py
from django import forms
from uploader.models import Upload, Upload_variables
class UploadForm(forms.ModelForm):
class Meta:
model = Upload
fields = ('document',)
class UploadFormVar(forms.ModelForm):
class Meta:
model = Upload_variables
fields = ('variables',)
views.py
def home(request):
if request.method=="POST":
img = UploadForm(request.POST, request.FILES)
if img.is_valid():
img.save()
else:
img=UploadForm()
files=Upload.objects.all()
return render(request,'home.html',{'form':img})
def variables(request):
if request.method == 'POST':
var = UploadFormVar(request.POST, request.FILES)
if var.is_valid():
var.save()
else:
var = UploadFormVar()
files_st = Upload_variables.objects.all()
return render(request, 'home.html', {'form_b': var})
HTML
<form action="#" method="post" enctype="multipart/form-data">
{% csrf_token %} {{form}}
<input type="submit" value="Upload" id="submit_form"/>
</form>
<form action="#" method="post" enctype="multipart/form-data">
{% csrf_token %} {{form_b}}
<input type="submit" value="Upload" id="staging"/>
</form>
Je peux voir 2 boutons Téléchargement mais seulement un 'choisir le fichier' .... Merci pour votre aide!