ウェブブラウザからファイルimage.png
をアップロードすると、サーバー上のアップロードディレクトリにimage.png
という名前の新しいファイルが表示されます。Djangoはアップロードされたファイルの名前をどのように変更しますか?
image.png
(同じ名前)という別のファイルをアップロードすると、image_aj642zm.png
という名前の新しいファイルがサーバーのアップロードディレクトリに表示されます。
image.png
(同じ名前)という別のファイルをアップロードすると、image_z6z2BaQ.png
という名前の新しいファイルがサーバーのアップロードディレクトリに表示されます。
Djangoは、アップロードされたファイルの名前を変更するために、その名前のファイルがアップロードディレクトリに既に存在する場合、どのような方法を使用しますか? (すなわち、余分な_aj642zm
と_z6z2BaQ
から来るんどこ?)
通常のセット・アップ:models.pyで
:
forms.pyでfrom django.db import models
class Image(models.Model):
image = models.ImageField(upload_to='uploads/')
:
from django import forms
from .models import Image
class ImageForm(forms.ModelForm):
class Meta:
model = Image
fields = ['image']
inVisit.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
そこにメソッドを指定できます。論理の名前を変更する必要があります。 –