我是 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 显示它,它显示了这个错误-> 编辑:我已经更改了 upload_to = 'profile_pics' 并错误地上传了错误的屏幕截图,但问题仍然存在
我尝试调整图像大小以使其变小,并且还通过转到该目录手动检查该图像是否存在于该文件夹中。我很无知,请帮忙。
上传的图像在个人资料页面上不可见,所以我想知道这是否是我的笔记本电脑的问题,或者我在某处使用了错误的语法。 我希望在个人资料页面上看到上传的图片
应该可以。我尝试了相同的代码,它对我有用。用户是否已通过身份验证?