I'm trying add image in model with an Imagefield
Folder Structure:
/base
/migrations
/tempelates
...
admin.py
models.py
urls.py
...
/env
/static
/images
avatar.png
/styles
/png
/networth_tracker/
/tempelates/
db.sqlite3
manage.py
pp1.jpg #image I uploaded from admin site
pp2.jpg #image I uploaded from admin site
pp3.jpg #image I uploaded from admin site
/base/models.py
class Account(models.Model):
...
logo = models.ImageField(null=True,default="avatar.png")
....
class Meta:
ordering = ['-updated', '-created']
def __str__(self):
return self.name
/networth_tracker/urls.py
from django.contrib import admin
from django.urls import path, include
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('base.urls')),
]
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIAFILES_DIRS)
/networth_tracker/settings.py
...
STATIC_URL = 'static/'
STATICFILES_DIRS = [BASE_DIR / "static"]
MEDIA_URL = '/images/'
MEDIAFILES_DIRS = BASE_DIR / "static/images"
...
Issue:
I tried alternatives which is also not worked:
class Account(models.Model):
...
logo = models.ImageField(null=True,default="avatar.png", upload_to="static/images")
...
class Meta:
ordering = ['-updated', '-created']
def __str__(self):
return self.name
MEDIAFILES_DIRS
- there is no such option. You need to set STATIC_ROOT
, MEDIA_ROOT
.