如何生成具有过期时间的Django一次性下载链接



我正在使用媒体根上的filefield模型上传文件。好吧,现在我有一个这样的链接:domain.com/media/file_name.file_extension。我想知道从这个主链接为每个点击文件下载的用户生成一个过期时间的一次性链接的最佳方法。

class files(models.Model): 
title = models.CharField(max_length=50)
picture = models.ImageField(upload_to='imges')
desc = models.TextField()
created_at = models.DateField(auto_now_add=True)
updated_at = models.DateField(auto_now=True)
download = models.FileField(upload_to='files')

def __str__(self):
return self.title

这是我的观点:

def download(requset ,title):
file = get_object_or_404 (files , title=title)
try :
file = files.objects.filter(title = title)
except :
raise Http404
context ={
'file' :file,
}
return render( requset,'download.html',context)

这是我的模板:

<div class="fix download_button"><a href="{{f.download.url}}"></a></div>

这是我的网址:

path('download/<str:title>/' , views.download , name='download'),

看看django请求令牌。

最新更新