{{object.image.url}}和{{object.image.path}}在模板中显示为未知,其中{{object.image]}显示路径[Django]

时间:2017-04-13 21:16:49

标签: django django-templates django-views

我不知道发生了什么,但这让我很烦恼。正如问题中所写.url在模板中返回未知。

但是当我尝试使用Model.objects.get(username = 1)并打印与.url链接的返回对象(如object.url)时,它可以工作并且它提供了/media/url/url.png

模型

class Consultant(models.Model):
    username= models.OneToOneField(User, on_delete=models.CASCADE)
    fname = models.CharField(max_length=150)
    lname = models.CharField(max_length=150)
    phone = models.BigIntegerField()
    country = models.CharField(max_length=100)
    state = models.CharField(max_length=100)
    desc = models.CharField(max_length=600)
    image = models.ImageField(upload_to='Avatar')
    resume = models.FileField(upload_to='documents/%Y/%m/%d')

    def __str__(self):
        return str(self.username)

查看功能

 def dashboard(request):
if request.method == "GET":
    user = request.user
    type = User_Type.objects.get(username=user)
    if type.type:
        con = Consultant.objects.filter().values()
        job = Job.objects.filter(owner=user).values()
        conss = Consultant.objects.get(pk=1)
        print(conss.image.url)
        return render(request,"client.html",{
            "con" : con,
            "job" : job
        })
    else:
        return HttpResponse("<h4>Comingsoon</h4>")

模板

 {% for n in con %}
                <div class="ui card">
                    <div class="content">
                        <img class="right floated mini ui image" src="/media/{{n.image.url}}"> 
                        <div class="header">
                            {{ n.fname }} {{ n.lname }}
                        </div>
                        <div class="meta">
                            <div class="ui star rating" data-rating="4"></div>
                        </div>
                        <div class="description">
                            {{ n.desc }}
                        </div>
                    </div>
                    <div class="extra content">
                        <div class="ui two buttons">
                            <div class="ui basic green button">Hire</div>
                            <div class="ui basic blue button">Profile</div>
                        </div>
                    </div>

                </div>
                {% endfor %}

1 个答案:

答案 0 :(得分:0)

正在发生的事情是你正在使用.values()返回一个字典,其中n["image"]不是一个对象,而是一个网址。

在您的视图中,您编写了小测试代码,但您没有使用values(),因此您获得了一个对象,其中conss.imageImageFieldFile对象,其中url 1}}属性是路径。

因此行为不同。