私はファイルをアップロードし、メタデータをdbに保存しています。メタデータの一部はファイル名そのものです。しかし、どこかの行の下にファイル名が保存されていないようです!私はこれを短く保つためにコードの関連部分であると思うものだけを貼り付けます。Django file upload:ファイル名が固まらない
class UploadFile(models.Model):
...
theFile = models.FileField(upload_to = "Genius/Uploads/", null = True)
filename = models.CharField(max_length = 50, blank = True, null = False)
class UploadFileForm(ModelForm):
class Meta:
model = UploadFile
fields = ('title', 'theFile', 'date_uploaded',) # Don't prompt for filename
def files_upload(request):
if request.method == 'POST':
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
form.filename = request.FILES['theFile'].name # TODO: sanitize!
# form.filename = 'foo'
form.save()
return HttpResponseRedirect('/files/upload/successful/')
else:
form = UploadFileForm()
return render_to_response('files/upload_file.html', { 'form': form })
私はrequest.FILES [ 'theFile']の値をチェックしてきた。名前を&前に、フォームを保存した後。どんな理由であれ、それは損なわれませんが、決してそれをDBにするようなことはありません。
ちょうど傍注:一部のブラウザはあなたにファイル名を送信し、他のブラウザはあなたに全体のパスを送信します。 – CodesInChaos