Django:下载重定向错误:在赋值之前引用了局部变量“no \u of \u download”

2024-09-30 16:41:35 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在创建一个网页,供用户上传图片和分享图片

下面是一个图像的详细信息页面的截图(没有错误,在我在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


Tags: ofnopyimageselfurlgetmodels
1条回答
网友
1楼 · 发布于 2024-09-30 16:41:35

我不确定你做的每件事我都照你说的做,但这里有第一个修正:

在getimgurl中,将no_of_download += 1更改为self.no_of_download += 1

这至少可以解决你的异常

然后,下一步将调用映像实例上的save(),以便保留对no\u of \u download get的更改…但这是另一个问题

相关问题 更多 >