Как отобразить изображение в админке Django?

В настоящее время я новичок в Django и веб-разработке, и мне интересно, как я могу отобразить изображение в админке Django? В настоящее время он просто показывает следующее: My Django admin

Я также приложил мои коды для моих урлов и моделей для справки: models.py models.py

urls.py urls.py

settings.py settings.py

PS: Я следовал онлайн-учебнику и не был уверен, что сделал неправильно. Спасибо.

Как можно отобразить изображение в админке django.

Прилагаются коды:

models.py

from django.db import models
from datetime import datetime
import os, random
from django.utils import timezone
#To display image correctly
from django.utils.html import mark_safe

now = timezone.now()

# Create your models here.

def image_path(instance,filename):
    basefilename, file_extension = os.path.splitext(filename)
    chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890'
    randomstr = ''.join((random.choice(chars)) for x in range (10))
    _now = datetime.now()

    return 'profile_pic/{year}-{month}-{imageid}-{basename}-{randomstring}{ext}'.format(
        imageid =instance, basename = basefilename, randomstring = randomstr, ext = file_extension,
          year = _now.strftime('%Y'), month = _now.strftime('%M'), day=_now.strftime('%d'))


class User(models.Model):
    user_fname = models.CharField(max_length=200, verbose_name='First name')
    user_lname = models.CharField(max_length=200, verbose_name=' Last Name')
    user_email = models.CharField(unique=True, max_length=200, verbose_name='Email')
    user_position = models.CharField(max_length=200, verbose_name='Position')
    user_image = models.ImageField(upload_to=image_path, default='profile_pic/image.jpg')

    #To display image as an image not as an object
    def image_tag(self):
        return mark_safe('<img src="/users/media/%s" width ="50" height="50" />'%(self.user_image))


    pub_date = models.DateField(default=now)


    def __str__(self):
        return self.user_email

urls.py

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

app_name = 'users'

#static image so that djanog can display image

urlpatterns=[
    path('',views.index, name='index')
] + static(settings.MEDIA_URL, document_root = settings.MEDIA_ROOT) 
+static(settings.STATIC_URL, document_root = settings.STATIC_ROOT)

settings.py

STATIC_URL = '/static/'
STATIC_ROOT = os.path.join(BASE_DIR, 'static')

MEDIA_ROOT = os.path.join(BASE_DIR, 'media')
MEDIA_URL = '/media/'
Вернуться на верх