簡體   English   中英

Django-默認個人資料圖片未顯示

[英]Django - Default Profile Picture not showing

我對圖像和圖像域有疑問。 但是,我選擇的默認圖片沒有顯示,只是一個空白的圓圈。 這是我的默認圖片

型號

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>

您的代碼中有錯誤,您無法從用戶配置文件模型中獲取圖像,因此您需要執行以下操作:

改變你的:

{% 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_nameForeignKeyProfilePicture類將定制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 %}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM