Если вы загрузили файл image.png
из веб-браузера, в каталоге загрузки на сервере появится новый файл с именем image.png
.Как Django переименовывает загруженные файлы?
Если я загружаю еще один файл с именем image.png
(то же имя), новый файл с именем image_aj642zm.png
появится в каталоге загрузки на сервере.
Затем, если я загружу еще один файл с именем image.png
(опять же имя), в каталоге загрузки на сервере появится новый файл с именем image_z6z2BaQ.png
.
Какой метод использует Django для переименования загруженного файла, если файл с таким именем уже существует в каталоге загрузки? (т.е. там, где это дополнительные _aj642zm
и _z6z2BaQ
взялись?)
Обычной Настройка:
В models.py:
from django.db import models
class Image(models.Model):
image = models.ImageField(upload_to='uploads/')
В forms.py:
from django import forms
from .models import Image
class ImageForm(forms.ModelForm):
class Meta:
model = Image
fields = ['image']
В views.py:
from django.shortcuts import render, redirect
from .forms import ImageForm
def upload_image(request):
if request.method == 'POST':
form = ImageForm(request.POST, request.FILES)
if form.is_valid():
form.save()
return redirect('index')
else:
form = ImageForm()
return render(request, 'upload_file.html', {'form': form})
Проверьте параметр upload_to в определении модели. –
@BipulJain Аргумент upload_to указывает, куда помещать загруженный файл. Он ничего не говорит о схеме переименования. Может, я что-то упустил? – Flux
Вы можете указать способ там. Который должен был переименовать логику. –