在个人资料页面中用户上传的图像中加载图像时出现问题

问题描述 投票:0回答:1

我是 Django(版本 = 5.0)的初学者,在查看用户在其个人资料页面上上传的以 HTML 呈现的内容时遇到问题。我已经正确安装了 Pillow 库,并且尝试了所有方法,但我似乎无法理解问题所在。

views.py

@login_required
def user_profile(request):
    return render(request, "register_user/profile.html")

url.py

from django.urls import path
from register_user import views
from django.contrib.auth import views as auth_views
from django.conf import settings
from django.conf.urls.static import static

# url patterns 

app_name = 'register_user'

urlpatterns = [
    path("", views.index, name="register-index"),
    path("signup/", views.userRegister, name="register-user"),
    path("login/", auth_views.LoginView.as_view(template_name='register_user/login.html'), name="login"),
    # path("login/", views.login_user ,name="login"),
    path("profile/", views.user_profile, name="profile"),
    path("logout/", views.logout_user, name="logout"),
] 

if settings.DEBUG:
    urlpatterns += static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)

模型.py

from django.db import models
from django.contrib.auth.models import User

# Create your models here.

class Profile(models.Model):
    user = models.OneToOneField(User, on_delete = models.CASCADE)
    image = models.ImageField(default = "default.jpg", upload_to='profile_pics')
    
    def __str__(self) -> str:
        return f"{self.user.username} Profile"

设置.py

STATIC_DIR = BASE_DIR / 'static'
STATIC_URL = "static/"
STATICFILES_DIRS = [STATIC_DIR,]

# MEDIA 
MEDIA_ROOT = BASE_DIR / "media"
MEDIA_URL = "media/"

个人资料.html

{% block content_block %}
   
  <div class="card border-light mb-3" >

    <img src="{{ user.profile.image.url }}" alt="Card image cap">
    <div class="card-header">Username ~ {{ user.username }}</div>
    <div class="card-body">
      <h5 class="card-title">{{user.first_name}} {{user.last_name}}</h5>
      <p class="card-title"> Your email -> {{user.email}} </p>
    </div>
  </div>

{% endblock content_block %}

我通过管理员创建了一个配置文件对象并上传了图像。然后我尝试通过 profile.html 显示它,它显示了这个错误-> this is visible in console when i go to profile page 编辑:我已经更改了 upload_to = 'profile_pics' 并错误地上传了错误的屏幕截图,但问题仍然存在

我尝试调整图像大小以使其变小,并且还通过转到该目录手动检查该图像是否存在于该文件夹中。我很无知,请帮忙。

上传的图像在个人资料页面上不可见,所以我想知道这是否是我的笔记本电脑的问题,或者我在某处使用了错误的语法。 我希望在个人资料页面上看到上传的图片

python django django-models django-views
1个回答
0
投票

应该可以。我尝试了相同的代码,它对我有用。用户是否已通过身份验证?

© www.soinside.com 2019 - 2024. All rights reserved.