末尾有斜杠时找不到Django媒体映像

问题描述

我今天添加用户头像,并在迁移时将其应用于当前的15个左右的用户中,但我发现该路径指定不正确,因此我在管理页面上查看出了什么问题。 所有用户当前使用的头像网址错误 ...DefUser.png/ 正确的是: ...DefUser.png

如果带有斜杠,则会给出错误,而不会给出正确的图像。反正有解决办法吗?如果不是,那么如何更改当前所有现有-15-用户的头像图像,并使其全部指向同一图像?


编码

models.py

class User(AbstractUser):
    ...
    avatar = models.ImageField(
        upload_to='users/img/avatar/',default="users/img/avatar/DefUser.png/")

settings.py:

# Static files (CSS,JavaScript,Images)
# https://docs.djangoproject.com/en/3.1/howto/static-files/

STATIC_URL = '/static/'
STATIC_ROOT = BASE_DIR / 'static'
MEDIA_URL = '/media/'
MEDIA_ROOT = BASE_DIR / 'media'

AUTH_USER_MODEL = 'users.User'
LOGIN_URL = '/signup/'

urls.py:

from django.conf.urls.static import static
from django.conf import settings
from django.urls import path,include
...
urlpatterns += static(settings.MEDIA_URL,document_root=settings.MEDIA_ROOT)

解决方法

对于现有用户,更改数据库中的值(例如,使用管理面板)。

对于新用户,将users/img/avatar/DefUser.png/更改为users/img/avatar/DefUser.png吗?