Как загрузить файлы в django в нужную папку
model.py
class Thread(models.Model):
user = models.Foreignkey(User, on_delete=models.CASCADE)
Title = models.CharField(max_length=30)
Media = models.ManyToManyField("Files", on_delete=models.CASCADE)
class Files(models.Model):
File = models.FileField(upload_to="thisFolderDoesNotMatter/")
в файле forms.py
class ThreadForm(ModelForm):
Files_Form_Label = forms.FileField(widget=forms.ClearableFileInput(attrs={'multiple':True}))
class Meta:
model = Thread
fields = ("Title",)
в файле views.py
from django.views import View
class NewThread(View):
template_name = 'Thread/New.html'
def get(self, request, id):
return render(request, self.template_name, context={
'form':ThreadForm(),
'data':Thread.objects.get(pk=id)
})
def post(self, request):
form_data = ThreadForm(request.POST, request.FILES)
all_files = request.FILES.getlist('File_Form_Label')
if form_data.is_valid():
new_thread = form_data.save(commit=False)
new_thread.user = request.user
new_thread.save()
for f in all_files:
file = Files(File=f)
# here is the problem that i want to upload this file in
# MEDIAROOT/request.user.username/new_thread.id/
# ANY method to do this ?
file.save()
new_thread.Media.add(file)
new_thread.save()
return HTTPResponse('SUCCESSFULL')
Я знаю метод экземпляра для ManyToOneField, но не знаю, как использовать его для ManyToManyField.
Я знаю метод экземпляра для ManyToOneField, но не знаю, как использовать его для ManyToManyField.