Я загружаю файлы и сохраняю метаданные в db. Часть метаданных - это имя файла. Однако, где-то вниз, имя файла, похоже, не будет спасено! Я буду вставлять только то, что, по моему мнению, является соответствующими частями кода, чтобы сохранить это короткое.Загрузка файла Django: filename not sticking
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']. Имя перед & после сохранения формы. По какой-то причине он не поврежден, но никогда не кажется, что он попадает в БД.
Просто обойти: некоторые браузеры отправляют вам только имя файла, другие отправляют вам весь путь. – CodesInChaos