我想在博客的每个帖子上创建一个附件。然后,我这样做了:
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条件可以正常工作,因为如果帖子没有附件,则按钮不会出现。
在我的下载按钮中放置下载链接的正确方法是什么?
答案 0 :(得分:2)
好,您有错字:
替换attachment.get_absolute_url
使用
blogpost.attachment.get_absolute_url
答案 1 :(得分:0)
好几件事。首先,从if
语句看来,您是从视图中传入blogpost
,这意味着您需要引用blogpost.attachment
。
尽管如此,您的网址还是应该像这样被引用:
<a href="{% url '<app_name>:<link_name>' blogpost.attachement.pk %}">Download</a>