我一直在尝试使用Django在我的HTML中显示图像。
通常会显示静态文件
<img src="{% static 'user_profile_pics/pfp_2.jpg' %}" >
此图像静态文件已存储在my models.py中的变量picture中。
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
bio = models.TextField(max_length=500, blank=True)
picture = models.TextField(max_length=500)
用户选择他们想要选择的图像作为他们的配置文件图像。下面是views.py文件,配置文件定义具有请求JSON字典,变量picture被分配给模型配置文件。
@login_required
def profile(request):
profile = Profile.objects.get(user = request.user)
return render (request, "profile.html", {"userinfo": {'bio': profile.bio, 'picture': profile.picture}})
def register(request):
if request.method == 'POST':
first_name = request.POST['first_name']
last_name = request.POST['last_name']
username = request.POST['username']
email = request.POST['email']
password = request.POST['password']
confirm_password = request.POST['confirm_password']
bio = request.POST['bio']
picture = request.POST['picture']
if password==confirm_password:
if User.objects.filter(username=username).exists():
messages.info(request, 'Username is already taken')
return redirect(register)
elif User.objects.filter(email=email).exists():
messages.info(request, 'Email is already taken')
return redirect(register)
else:
user = User.objects.create_user(username=username, password=password, email=email, first_name=first_name, last_name=last_name)
user.save()
profile = Profile(bio=bio, picture=picture, user=user)
profile.save()
return redirect('login_user')
else:
messages.info(request, 'Both passwords are not matching')
return redirect(register)
else:
return render(request, 'registration.html')
接下来,在个人资料html中显示个人简介和图片的工作原理如下:
<div id = "userprofiletext">
{% if user.is_authenticated %}
<a class="text" >Your Description is: , {{bio}}</a>
<img src= {{userinfo.picture}} />
{% endif %}
</div>
在实现JSON之前,生物设法显示。我认为必须在HTML中做一些事情才能显示它,并且需要一些帮助。在我的页面上显示的图片不注册,但调试时很明显,"图片"是图片文件链接。页面上的图片永远不会显示。
我试图找出显示的生物和图片,因为他们已经正确地传递到模型。在我的HTML文件页面顶部也有一个django加载静态行。
编辑:
在这张图片中一切看起来正常,但它仍然不显示?
形象将{{userinfo.picture}}
放入双引号
<img src="{{userinfo.picture}}" />