在django模型中保存图像文件

时间:2017-09-15 13:58:42

标签: django

我想在属性'imgsrc'下的表格(django模型)中存储大量图像。我怎么做?我看过很多在线资料,但我没有在任何地方获得完整的信息。我需要在settings.py中进行哪些更改以及在哪里存储我的图像文件?...

models.py的一部分

class elementdetails(models.Model):
    sid=models.IntegerField()
    imgsrc=models.ImageField()
    soundsrc=models.FileField()
    sounddesc=models.CharField(max_length=20)

1 个答案:

答案 0 :(得分:2)

在您MEDIA_ROOT中设置MEDIA_URLsettings.py

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'

urls.py中,添加:

from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
    # ... the rest of your URLconf goes here ...
] + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

确保根目录中有media目录。

现在,您还可以在模型中使用uploaded_toimages存储在目录中。

class elementdetails(models.Model):
    sid=models.IntegerField()
    imgsrc=models.ImageField(upload_to='elements/')
    soundsrc=models.FileField()
    sounddesc=models.CharField(max_length=20)

要在templates中获取图片,请使用:

<img src="{{ object.imgsrc.url }}" alt="image">

如果您想在表单中上传图片,请务必使用enctype="multipart/form-data"中的template

<form action="" method="post" enctype="multipart/form-data">

另外,请确保在views中使用:

form = Form(request.POST, request.FILES)

它会起作用。