Я хочу хранить много изображений в таблице (модель django) под атрибутом imgsrc. Как я могу это сделать? я видел много онлайн-материалов, но я не получаю полную информацию в любом месте. Какие изменения мне нужно сделать в settings.py и где я храню файлы изображений?...
часть models.py
class elementdetails(models.Model):
sid=models.IntegerField()
imgsrc=models.ImageField()
soundsrc=models.FileField()
sounddesc=models.CharField(max_length=20)
Настройте 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)
Это будет работать.
urls.py
в вашем myapp
, и media
каталог в mysite
.