在 Django 的模板中显示模型的个人资料图片

naj*_*ath 1 html python django django-templates

我想在标签src字段中插入用户的图像。但img我无法做到。我的代码:

模型.py

class allusers(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    avatar = models.ImageField(upload_to='retest/static/images/')
Run Code Online (Sandbox Code Playgroud)

视图.py

u = User.objects.get(username=username)
Run Code Online (Sandbox Code Playgroud)

模板

<img src={{ u.allusers.avatar }} />
Run Code Online (Sandbox Code Playgroud)

小智 5

1、以正确的方式在设置中注册静态和媒体。

MEDIA_URL = '/media/'
MEDIA_ROOT = '/srv/django/myproject/src/myproject/media'
STATIC_URL = '/static/'
STATIC_FILE_ROOT = '/srv/django/myproject/src/myproject/static'
STATICFILES_DIRS = (
    os.path.join(BASE_DIR, "static"),
    '/srv/django/myproject/src/myproject/static',
)
Run Code Online (Sandbox Code Playgroud)

2、在urls.py中调用static和media url

from django.views.static import serve

url(r'^media/(?P<path>.*)$', serve, { 'document_root': settings.MEDIA_ROOT}), 
url(r'^static/(?P<path>.*)$', serve, { 'document_root': settings.STATIC_FILE_ROOT}),
Run Code Online (Sandbox Code Playgroud)

3、这样称呼头像

<img src="{{ u.allusers.avatar.url }}" alt="Avathar"/>
Run Code Online (Sandbox Code Playgroud)