我对图像和图像域有疑问。但是,我选择的默认图片不显示,只显示空白圆圈。这是我的default picture
Models.py
class UserProfile(models.Model):
user = models.OneToOneField(User)
description = models.CharField(max_length=255, default='')
city = models.CharField(max_length=100, default='')
website = models.URLField(default='')
def __str__(self):
return self.user.username
class ProfilePicture(models.Model):
user = models.ForeignKey(User)
image = models.ImageField(upload_to='profile_image', default='profile_image/Default.jpg')
Forms.py
class UploadPictureForm(forms.Form):
image = forms.ImageField()
profile.html
<div class="container">
<div id="left">
<div id="profilecard">
{% if user.userprofile.image %}
<img class="circular--square" src="{{ }}" width="200" height="200">
{% endif %}
<div id="info">
<br>
<h3>{{ user.first_name }} {{ user.last_name }}</h3>
<p>@{{ user }}</p>
<p>{{ user.userprofile.city }}</p>
<p>{{ user.userprofile.website }}</p>
<p><i>{{ user.userprofile.description }}</i></p>
</div>
</div>
答案 0 :(得分:0)
src
中的profile.html
标记未提交。如果您想使用默认图片,可以在模板中添加else
标记,并将src
指向静态文件。
<div class="container">
<div id="left">
<div id="profilecard">
{% if user.userprofile.image %}
<img class="circular--square" src="{{ user.userprofile.image.url }}" width="200" height="200">
{% endif %}
<div id="info">
<br>
<h3>{{ user.first_name }} {{ user.last_name }}</h3>
<p>@{{ user }}</p>
<p>{{ user.userprofile.city }}</p>
<p>{{ user.userprofile.website }}</p>
<p><i>{{ user.userprofile.description }}</i></p>
</div>
</div>
</div>
</div>
答案 1 :(得分:0)
您的代码中存在错误,您无法从userprofile模型中获取图像,因此您需要执行此操作:
改变你的:
{% if user.userprofile.image %}
为:
{% if user.profilepicture_set.count > 0 %}
将img标签的src属性更改为:
src="{{ user.profilepicture_set.all.0.image.url }}"
固定代码:
<div class="container">
<div id="left">
<div id="profilecard">
{% if user.profilepicture_set.count > 0 %}
<img class="circular--square" src="{{ user.profilepicture_set.all.0.image.url }}" width="200" height="200">
{% endif %}
<div id="info">
<br>
<h3>{{ user.first_name }} {{ user.last_name }}</h3>
<p>@{{ user }}</p>
<p>{{ user.userprofile.city }}</p>
<p>{{ user.userprofile.website }}</p>
<p><i>{{ user.userprofile.description }}</i></p>
</div>
</div>
</div>
</div>
在related_name
班级ForeignKey
上使用ProfilePicture
将自定义用户的profilepicture_set
密钥
user = models.ForeignKey(User, related_name='image')
您可以在
等模板上访问它{% if user.image.count > 0 %}
<img class="circular--square" src="{{ user.image.all.0.image.url }}" width="200" height="200">
{% endif %}
如果个人资料图片只有一个,你也可以使用OneToOneField到ProfilePicture用户字段:
user = models.OneToOneField(User)
和模板:
{% if user.profilepicture %}
<img class="circular--square" src="{{ user.profilepicture.image.url }}" width="200" height="200">
{% endif %}