【问题标题】:How to upload an image and store its link in database如何上传图像并将其链接存储在数据库中
【发布时间】:2011-12-15 11:16:33
【问题描述】:

我在 Django 站点中阅读了一些文档,例如:Basic file uploadsFileField.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})

【问题讨论】:

    标签: django django-models django-forms django-file-upload


    【解决方案1】:

    我相信如果你将上传表单创建为模型表单,然后将其保存在视图中,它将具有将文件保存到文件系统和模型路径的效果。这是一个基本示例,但我认为它应该有效。

    # 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/')
    

    【讨论】:

      猜你喜欢
      • 2020-08-09
      • 2016-10-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-18
      • 2011-10-25
      • 2013-04-19
      相关资源
      最近更新 更多