Как загрузить изображение и сохранить его ссылку в базе данных - PullRequest
1 голос
/ 26 октября 2011

Я прочитал некоторые документы на сайте Django, такие как: Основные загрузки файлов и FileField.storage .Тем не менее, я до сих пор не понимаю, как загрузить файл (или изображение) на сервер и сохранить его ссылку в базе данных.Я хотел бы записать файлы в следующий каталог, например: 'image /% Y /% m /% d'

Пожалуйста, дайте мне пример кода.Огромное спасибо.

Мой код выглядит следующим образом:

#models.py
class Image(models.Model):
   imageid = models.AutoField()
   title = models.CharField(max_length=100)
   imagepath = models.ImageField(upload_to='images/%Y/%m/%d/')       

#forms.py
class UploadFileForm(forms.Form):
   title = forms.CharField(max_length=100)
   image = forms.FileField()   

#views.py
def upload_file(request):
   if request.method == 'POST':
      form = UploadFileForm(request.POST, request.FILES)
      if form.is_valid():
         # How to upload file to folder named 'images/%Y/%m/%d/'

         # How to save the link above to database

         return HttpResponseRedirect('/success/url/')
   else:
      form = UploadFileForm()
return render_to_response('upload.html', {'form': form})

1 Ответ

0 голосов
/ 26 октября 2011

Я полагаю, что если вы создадите форму загрузки в виде формы модели, а затем просто сохраните ее в представлении, это приведет к сохранению файла в файловой системе и пути к модели.Это базовый пример, но я думаю, что это должно работать.

# forms.py
class UploadFileForm(forms.ModelForm):
    class Meta:
        model = models.Image

# views.py
...
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
    form.save()
    return HttpResponseRedirect('/success/url/')
...