python - 允许用户直接下载文件 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>
解决方案
我们需要直到 django 关于我们的媒体图像,所以我们from django.conf import settings
通过这个代码导入 urls.py 中的设置,if settings.DEBUG: urlpatterns += urlpatterns + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)
我们直到 django 关于我们的媒体图像,
不要忘记添加媒体根和媒体 URL,MEDIA_ROOT = os.path.join(BASE_DIR, 'media') MEDIA_URL = '/media/'
最后我们添加图像。在我们的 html 页面中图像的 src 属性中的url它将显示图像。
推荐阅读
- android - 为响应出现的 android 导航插图做一些事情
- java - 错误 404:请求的资源 [/] 不可用
- django - 文件管理器字段未在 Django-admin 中返回任何图像
- git - 做这个特定的合并会删除常见的提交而不是重新应用它们吗?
- c - CodeBlocks 调试器不工作。创建进程时出错(错误 2)
- db2 - 执行 COBOL 程序静态调用 COBOL/DB2 子程序所涉及的步骤
- java - 递增字符串时如何保持前导零
- swagger - 如何在 Swagger 中重用模式
- c++ - 条件变量 wait_for() 也在内部以系统时钟运行?
- javascript - 在 IE 上的文本输入中清除图标事件