我正在创建一个网页,供用户上传图片和分享图片
下面是一个图像的详细信息页面的截图(没有错误,在我在models.py中添加第no_of_download += 1
行之前)enter image description here
我想要的是:
**当我单击ImageDetail.html上的download
按钮时,图像将存储到我的计算机,No. of downloads: 0
将变为No. of downloads: 1
这是我的密码:
视图.py:
class ImageDetailView(generic.DetailView):
model = Image
template_name='ImageApp/ImageDetail.html'
ImageDetail.html:
<a href="{{ image.get_img_url }}">Download</a> //this is for someone to click 'download'
<p>The no. of Downloads of this image: {{ image.no_of_download }}</p> // to show the total no. of downloads of this specific image
型号.py:
class Image(models.Model):
category = models.ForeignKey(Category, blank=True, null=True, on_delete=models.DO_NOTHING)
tag = models.ManyToManyField(Tag, blank=True)
title = models.CharField(max_length=100)
photo = models.FileField()
description = models.CharField(max_length=1000)
no_of_download = models.IntegerField(default=0)
def __str__(self):
return self.title + '-' + self.description
def get_absolute_url(self):
return reverse('imagebank:image-detail', kwargs={'pk': self.pk})
def get_img_url(self):
no_of_download += 1
return self.photo.url
错误:
当我重定向到ImageDetail.html时,出现以下错误消息:local variable 'no_of_download' referenced before assignment
注意,出于某种原因,我不想在这里使用JavaScript
我不确定你做的每件事我都照你说的做,但这里有第一个修正:
在getimgurl中,将
no_of_download += 1
更改为self.no_of_download += 1
这至少可以解决你的异常
然后,下一步将调用映像实例上的
save()
,以便保留对no\u of \u download get的更改…但这是另一个问题相关问题 更多 >
编程相关推荐