从 ForeignKey 模型下载 link
Download link from ForeignKey model
我想在我博客的每个 post 上创建一个附件。然后我这样做了:
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,
)
在单个 post 的模板中,我放了这个:
{% if blogpost.attachment %}
<hr>
<div>
<a class="btn btn-info" href="{{ attachment.get_absolute_url }}" rule="button">
Download
</a>
</div>
{% endif %}
但是我看到href
是空的,我无法下载附件。 if 条件工作正常,因为如果 post 没有附件,按钮不会出现。
将下载 link 放入我的下载按钮的正确方法是什么?
好的,你打错了:
替换attachment.get_absolute_url
和
blogpost.attachment.get_absolute_url
好吧,有几件事。首先,从 if
语句看来,您正在从视图中传入 blogpost
,这意味着您需要引用 blogpost.attachment
。
你的 url 应该是这样引用的:
<a href="{% url '<app_name>:<link_name>' blogpost.attachement.pk %}">Download</a>
我想在我博客的每个 post 上创建一个附件。然后我这样做了:
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,
)
在单个 post 的模板中,我放了这个:
{% if blogpost.attachment %}
<hr>
<div>
<a class="btn btn-info" href="{{ attachment.get_absolute_url }}" rule="button">
Download
</a>
</div>
{% endif %}
但是我看到href
是空的,我无法下载附件。 if 条件工作正常,因为如果 post 没有附件,按钮不会出现。
将下载 link 放入我的下载按钮的正确方法是什么?
好的,你打错了:
替换attachment.get_absolute_url
和
blogpost.attachment.get_absolute_url
好吧,有几件事。首先,从 if
语句看来,您正在从视图中传入 blogpost
,这意味着您需要引用 blogpost.attachment
。
你的 url 应该是这样引用的:
<a href="{% url '<app_name>:<link_name>' blogpost.attachement.pk %}">Download</a>