Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django 如何上传图像并将其链接存储在数据库中_Django_Django Models_Django Forms_Django File Upload - Fatal编程技术网

Django 如何上传图像并将其链接存储在数据库中

Django 如何上传图像并将其链接存储在数据库中,django,django-models,django-forms,django-file-upload,Django,Django Models,Django Forms,Django File Upload,我在Django网站上读了一些文档,比如:和。然而,我仍然不明白如何将文件或图像上传到服务器并将其链接存储在数据库中。我想将文件写入以下目录,例如:“image/%Y/%m/%d” 请给我一个示例代码。非常感谢你 我的代码如下: #models.py class Image(models.Model): imageid = models.AutoField() title = models.CharField(max_length=100) imagepath = models

我在Django网站上读了一些文档,比如:和。然而,我仍然不明白如何将文件或图像上传到服务器并将其链接存储在数据库中。我想将文件写入以下目录,例如:“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})

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

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