我不知道发生了什么,但这让我很烦恼。正如问题中所写.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 %}
答案 0 :(得分:0)
正在发生的事情是你正在使用.values()
返回一个字典,其中n["image"]
不是一个对象,而是一个网址。
在您的视图中,您编写了小测试代码,但您没有使用values()
,因此您获得了一个对象,其中conss.image
是ImageFieldFile
对象,其中url
1}}属性是路径。
因此行为不同。