2017-03-22 60 views
0

我已經寫了下面的代碼,URL正在被抓取,並在本地主機管理員127.0.0.1:8080/admin中,但它不顯示我的網站上的個人資料圖片。 我的代碼如下 在models.py如何在我的模板中顯示ImageField圖像?

class UserProfile(models.Model): 
    user = models.OneToOneField(User, related_name="profile") 
    name = models.CharField(max_length=250, null=True, blank=True) 
    profile_image = models.ImageField(upload_to = get_upload_file_name, null=True, blank=True) 
    url=models.CharField(max_length=500,null=True,blank=True) 
    def __str__(self): 
     return u'%s profile' % self.user.username 

在views.py

def home(request): 
    context ={'request': request, 'user': request.user} 
    return render(request,'home.html',context) 

在home.html的我寫了下面的

{% extends 'base.html' %} 
{% block main %} 
<div> 
<h1>authentication demo</h1> 
<p> 
    <ul> 
    {% if user and not user.is_anonymous %} 
    <li> 
     <a>Hello {{ user.get_full_name|default:user.username }}!</a> 
    </li> 


    <img src="{{ userprofile.url }}" alt="Some alt text"> 
</p> 
</div> 
{% endblock %} 

的問題是應該怎樣我添加了html,我怎樣才能調用模型對象。

+0

凡'get_upload_file_name'定義,它有什麼回報?你的模板代碼是什麼? – Chris

+0

感謝您的回覆。我目前不需要它,所以沒有使用它。我已經提取了網址,它位於我的數據庫的用戶配置文件中。我想要什麼如何顯示使用該網址的個人資料圖片。 –

+0

再次,請向我們展示您的_template code_。 – Chris

回答

0

首先,你必須getUserProfile對象是這樣的:

# views.py 

from django.shortcuts import get_object_or_404 

def home(request): 
    user_profile = get_object_or_404(UserProfile, user=request.user) 
    context = { 
     'request': request, 
     'user': request.user, 
     'user_profile': user_profile, 
    } 
    return render(request, 'home.html', context) 
在HTML文件中

那麼做到這一點:

{% extends 'base.html' %} 

{% block main %} 
    <div> 
     <h1>authentication demo</h1> 
     <p> 
      <ul> {% if user_profile and not user_profile.user.is_anonymous %} 
       <li><a>Hello {{ user_profile.user.get_full_name|default:user.username }}!</a></li> 
      <img src="{{ user_profile.profile_image.url }}" alt="Some alt text"> 
     </p> 
    </div> 
{% endblock %} 
+0

嘿謝謝你的回覆。我嘗試了你的代碼,並且我得到了一個類似於以下錯誤的類型錯誤:/ 'AnonymousUser'對象不可迭代 –

+0

然後,你應該顯示一些HTML代碼,就像Chris寫的一樣! –

+0

是的,我已經上傳了我的模板代碼! –

0

你要打印{{ userprofile.url }},但沒有userprofile對象你的上下文。

您應該可以通過您的user對象訪問它,使用您在配置文件模型中使用的profilerelated_name;確保還使用了正確的配置文件字段(profile_image,不url),並使用該字段的url property

<img src="{{ user.profile.profile_image.url }}" alt="Some alt text"> 
相關問題