我不知道发生了什么,但这让我很困扰。如问题中所述,.url 在模板中返回未知。
但是当我尝试Model.objects.get(用户名= 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 %}
发生的事情是你正在使用.values()
它返回一个字典,其中n["image"]
不是一个对象,而是一个 url。
在您的视图中,您编写小测试代码的地方没有使用 values()
,因此您返回了一个对象,其中 conss.image
是一个ImageFieldFile
对象,其中 url
属性是路径。
因此行为不同。