如何将之前上传的图片加载到HTML文件中?
如何将之前上传的图片加载到HTML文件中?
根据http://www.tangowithdjango.com/book/chapters/login.html的指导,我设置了个人资料图片上传。
然后我发现了用户Raisins的第二个答案对我的目的很有用,并将其实现在Extending the User model with custom fields in Django上。由于我看到这个答案已经过时,我还尝试了这里提供的迁移解决方案:Get rid of get_profile() in a migration to Django 1.6,但并没有改善我的情况。
然后在我的视图中,我将必要的细节添加到一个字典中,并将其渲染到HTML页面中。看起来UserProfile没有返回正确的对象。
u=User.object.get(username__exact=request.user) profile=UserProfile.objects.get(user=u) global client client['login']=True client['name']=u.username client['password']=u.password client['email']=u.email client['picture']=profile.picture return render(request,'index.html',{'client':client})
当我尝试在HTML页面上显示详细信息时,除了图片之外的所有内容都加载了。
我尝试了
其中profile_images位于根目录中。我检查了元素,发现了这个
其中我期望的是"1.jpg"而不是"%7B%7B%20client.picture%20%7D%7D"。
感谢任何帮助。谢谢。
问题的原因是根据旧的教程中提供的代码,在加载图像时出现问题。在代码中,尝试从数据库中获取用户的个人资料(UserProfile),如果不存在则将其设置为None。然后,在模板中使用if条件语句来判断用户个人资料中是否存在图片,并通过使用{{ userprofile.picture.url }}来显示图片。
然而,问题是在运行代码时,userprofile(p)的值始终为None,因此无法正确加载图像。即使稍微修改代码,使userprofile(p)不为None,也无法访问诸如姓名或电子邮件之类的详细信息。
解决方法是在管理后台或Django shell中为用户创建个人资料。这样,就可以在模板中通过{{ user.username }}访问用户名。
尽管问题已经进行了一些修改,但图像仍然无法加载。
问题是在HTML文件中加载之前上传的图像的方法。问题的解决方法是在数据库中创建用户的个人资料,并通过在模板中使用正确的代码来加载图像。