在 Django 中添加个人资料图片不起作用
Adding a profile image in django is not working
我正在尝试将个人资料图片添加到我的页面,但由于某些原因 "my image" 显示的是文字而不是图片。
我不知道我的代码有什么问题,我已经阅读了多个教程,他们都告诉我这样做。我的根目录中有一个文件夹 "media",里面有一个文件夹 "profile_pics".
我已将这些添加到 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
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这是我的html
{% load static %}
{%block content%}
<div class="content-section">
<div class="media">
<img src="{% static "profile_pics/default.jpg" %}" alt="My image"/>
<div class="media-body">
<h2 class="account-heading">{{ user.username }}</h2>
<p class="text-secondary">{{ user.email }}</p>
</div>
</div>
</div>
{%endblock content%}
models.py
class profiili(models.Model):
user=models.OneToOneField(User, on_delete=models.CASCADE)
kuva=models.ImageField(default='default.jpg', upload_to='profile_pics')
{% static %}
标签仅适用于 STATIC_URL
。要获取媒体文件,您应该使用 {% get_media_prefix %}
喜欢:
{% load static %}
{% get_media_prefix as MEDIA_PREFIX %}
<img src="{{ MEDIA_PREFIX }}profile_pics/default.jpg" alt="My image"/>
如果你通过User和Profiili模型之间的OnetoOne关系成功上传了你的图片,你可以这样尝试
div class="content-section">
<div class="media">
<img src="{{user.profiili.kuva.url}}" alt="My i mage"/>
<div class="media-body">
<h2 class="account-heading">{{ user.username }}
</h2>
<p class="text-secondary">{{ user.email }}</p>
</div>
</div>
</div>
直接使用您的图片 link。 django 开发服务器将只在 debug = True 中提供它。
把这个放在你的图片标签中。
src="/profile_pics/default.jpg" alt="My Image"
{% get_media_prefix as MEDIA %}
将不起作用。 MEDIA
似乎是某种保留词。 {% get_media_prefix as MEDIA_URL %}
或其他一些词都可以。
您还需要在 {% block content %}
块中添加此代码。否则它将不起作用。我的意思是您将无法访问内容块内的 {{ MEDIA_URL }}
。
我正在尝试将个人资料图片添加到我的页面,但由于某些原因 "my image" 显示的是文字而不是图片。
我不知道我的代码有什么问题,我已经阅读了多个教程,他们都告诉我这样做。我的根目录中有一个文件夹 "media",里面有一个文件夹 "profile_pics".
我已将这些添加到 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
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
这是我的html
{% load static %}
{%block content%}
<div class="content-section">
<div class="media">
<img src="{% static "profile_pics/default.jpg" %}" alt="My image"/>
<div class="media-body">
<h2 class="account-heading">{{ user.username }}</h2>
<p class="text-secondary">{{ user.email }}</p>
</div>
</div>
</div>
{%endblock content%}
models.py
class profiili(models.Model):
user=models.OneToOneField(User, on_delete=models.CASCADE)
kuva=models.ImageField(default='default.jpg', upload_to='profile_pics')
{% static %}
标签仅适用于 STATIC_URL
。要获取媒体文件,您应该使用 {% get_media_prefix %}
喜欢:
{% load static %}
{% get_media_prefix as MEDIA_PREFIX %}
<img src="{{ MEDIA_PREFIX }}profile_pics/default.jpg" alt="My image"/>
如果你通过User和Profiili模型之间的OnetoOne关系成功上传了你的图片,你可以这样尝试
div class="content-section">
<div class="media">
<img src="{{user.profiili.kuva.url}}" alt="My i mage"/>
<div class="media-body">
<h2 class="account-heading">{{ user.username }}
</h2>
<p class="text-secondary">{{ user.email }}</p>
</div>
</div>
</div>
直接使用您的图片 link。 django 开发服务器将只在 debug = True 中提供它。 把这个放在你的图片标签中。
src="/profile_pics/default.jpg" alt="My Image"
{% get_media_prefix as MEDIA %}
将不起作用。 MEDIA
似乎是某种保留词。 {% get_media_prefix as MEDIA_URL %}
或其他一些词都可以。
您还需要在 {% block content %}
块中添加此代码。否则它将不起作用。我的意思是您将无法访问内容块内的 {{ MEDIA_URL }}
。