首页 > 解决方案 > 允许用户直接下载文件 django

问题描述

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

模型.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>

标签: pythondjangodjango-file-upload

解决方案


我们需要直到 django 关于我们的媒体图像,所以我们from django.conf import settings 通过这个代码导入 urls.py 中的设置,if settings.DEBUG: urlpatterns += urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT) 我们直到 django 关于我们的媒体图像, 不要忘记添加媒体根和媒体 URLMEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/'最后我们添加图像。在我们的 html 页面中图像的 src 属性中的url它将显示图像。


推荐阅读