【问题标题】:Allow users to download files directly django允许用户直接下载文件 django
【发布时间】:2019-04-06 09:21:02
【问题描述】:

在 TrainerProfileModel 中,我有一个名为 cv 的文件字段。我想让用户在点击链接时直接下载文件。你能提供任何方法来实现这一点吗?

models.py:

class TrainerProfile(models.Model):
 user = models.OneToOneField(User, on_delete=models.CASCADE, 
 null=True, related_name='trainer_profile')
 profile_picture = models.ImageField(blank=True)
 phone_regex = RegexValidator(regex=r'^\+?1?\d{9,15}$', message="Phone 
 number must be entered in the format: '+999999999'. Up to 15 digits 
 allowed.")
 mobile_number = models.CharField(validators=[phone_regex], 
 max_length=17, blank=True)
 location = models.CharField(max_length=200,null=True,blank=True)
 gender = models.CharField(choices=GENDER_CHOICES,max_length=150, 
 blank=True)
 cv = models.FileField(blank=True)
 approval=models.BooleanField(default=False)

 def __str__(self):
    return self.user.username

在我的模板中:

<li class="list-group-item">
  <b>Download CV</b>
  <a class="pull-right">{{ trainer.cv }}</a>
</li>

【问题讨论】:

  • 是的,使用a 标记的href 属性,其值为{{ trainer.cv.url }}
  • &lt;a href="{{ trainer.cv.url }}" class="pull-right" download&gt;{{ trainer.cv }}&lt;/a&gt;.
  • 它很可能不适用于图像、pdf 和某些视频格式。为此,您需要创建一个自定义 url 来下载文件并向 url 添加适当的标题。如果不起作用,请参阅此问题以获取详细信息stackoverflow.com/questions/15246661/…

标签: python django django-file-upload


【解决方案1】:

正如 cmets 中提到的,使用 trainer.cv.url 代替,但也有其他方法,请查看 here

祝你好运

【讨论】:

    猜你喜欢
    • 2020-08-04
    • 2020-06-04
    • 2023-03-21
    • 1970-01-01
    • 2010-10-15
    • 2014-02-26
    • 2016-12-18
    • 2012-10-08
    • 1970-01-01
    相关资源
    最近更新 更多