Django - 默认个人资料图片不显示

我对图像和图像域有疑问。但是,我选择的默认图片不显示,只有一个空白的圆圈。这是我default pictureDjango - 默认个人资料图片不显示

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>

回答:

profile.htmlsrc标签没有被提起。如果您想要使用默认图像,您可以在模板中放置一个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>

回答:

。在你的代码错误,所以你需要做到这一点,你不能从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>

ForeignKeyProfilePicture类使用related_name将定制的用户

user = models.ForeignKey(User, related_name='image') 

profilepicture_set键,您可以访问它的模板像

{% 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 %}

以上是 Django - 默认个人资料图片不显示 的全部内容, 来源链接: utcz.com/qa/260467.html

回到顶部