我想在属性'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)
答案 0 :(得分:2)
在您MEDIA_ROOT
中设置MEDIA_URL
和settings.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_to
将images
存储在目录中。
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)
它会起作用。