1
我有一個網站,可以讓用戶上傳文件。這些文件被附加到一個節點,該節點是上傳請求的一部分。由於同一個文件可能會附加到不同的節點上,因此Django會通過向文件名添加散列來重命名該文件。因此,如果用戶下載之前上傳的文件,它將不具有原始文件名。根據請求在子文件夾中保存上傳的文件
是否可以在上傳文件的媒體文件夾內創建子目錄(以節點ID命名)?我找到的最接近的解決方案是更改FileField的系統存儲,但對於該模型的所有文件,這是靜態的。還是有另一種更好的方法來解決重複文件的問題?
型號:
class Attachment(models.Model):
node = models.IntegerField(default=-1)
file = models.FileField(upload_to=".")
查看:
def file_upload(request):
if request.method == "POST":
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
instance = Attachment(file=request.FILES["file"], node_id=request.POST["node_id"])
instance.save()
return HttpResponse(instance.file.url)