django - 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 条件可以正常工作,因为如果帖子没有附件,按钮不会出现。
在我的下载按钮中放置下载链接的正确方法是什么?
解决方案
好的,你有一个错字:
代替attachment.get_absolute_url
和
blogpost.attachment.get_absolute_url
推荐阅读
- c# - 将授权属性“/Account/Login”更改为自己的登录路径
- java - Spring Boot、JPA、AWS-RDS(PostgreSql)、多模式
- r - 带有 ggplot2 和数据准备的多图图表
- r - 仅当字段存在时重命名,否则忽略
- c# - 如何使用 wpf 在 blazor 上设置 WebView2 设置
- header - 在 NextJS 中预渲染页眉和页脚组件
- c - 序列化时,为什么在转换为无符号整数之前将尾数乘以 INT_MAX?
- python - 姜戈。CSRF 令牌丢失或不正确
- google-chrome - chromium: what's the max cache size that cached via HTTP headers?
- python - 如何从列表 A 中删除列表 B 中的所有元素