首页 > 解决方案 > ForeignKey 模型的下载链接

问题描述

我想在我博客的每篇文章上创建一个附件。然后我这样做了:

class FileUpload(models.Model):
    name = models.Charfield(max_length=70)
    file = models.FileField()

    def __str__(self):
        return self.name

    def get_absolute_url(self):
        return reverse("single_file", kwargs={"pk": self.pk})


class BlogPost(models.Model):
    title = models.Charfield(max_length=70)
    .
    .
    .
    attachment = models.ForeignKey(
        FileUpload, 
        on_delete=models.CASCADE, 
        related_name="related_attachment", 
        null=True,
        blank=True,
        )

在单个帖子的模板中,我放了这个:

  {% if blogpost.attachment %}
  <hr>
  <div>
    <a class="btn btn-info" href="{{ attachment.get_absolute_url }}" rule="button">
        Download
    </a>
  </div>
  {% endif %}

但是我看到那个href是空的,我不能下载附件。if 条件可以正常工作,因为如果帖子没有附件,按钮不会出现。

在我的下载按钮中放置下载链接的正确方法是什么?

标签: djangodjango-modelsdjango-templatesdjango-2.2

解决方案


好的,你有一个错字:

代替attachment.get_absolute_url

blogpost.attachment.get_absolute_url


推荐阅读