Django 1.8上传特定位置的文件

时间:2015-07-22 16:43:48

标签: python django

整天都在寻找,希望有人能给我一个答案。

根据打开的页面,有人可以建议如何在上传文件时让Django创建文件目录。

例如,我需要为单位创建网页,其中每个单位都有能力上传文件。

我知道如何上传到特定位置,但有没有办法让Django读取打开的页面并创建一个包含该页面名称的目录,让我们说:

www.comunity.com/main street/house5/flat 1

我希望使用

创建目录
main_street/house5/flat1

和要存储的图像。

希望这是有道理的。

目前为models.py

# -*- coding: utf-8 -*-
from django.db import models

class Document(models.Model):
    docfile = models.FileField(upload_to='documents/%Y/%m/%d')

还有forms.py

class DocumentForm(forms.Form):
    docfile = forms.FileField(
    label='Pasirinkite dokumenta'
)

Views.py

from newsletter.models import Document
from newsletter.forms import DocumentForm

def Main_street_6_flat_1(request):

        # Handle file upload
    if request.method == 'POST':
        form = DocumentForm(request.POST, request.FILES)
        if form.is_valid():
            newdoc = Document(docfile = request.FILES['docfile'])
            newdoc.save()

        # Redirect to the document list after POST
            return HttpResponseRedirect(reverse('Main_street_6_flat_1'))

        if request.method != 'POST':
            raise Http404

        docId = request.POST.get('docfile', None)
        docToDel = get_object_or_404(Document, pk = docId)
        docToDel.docfile.delete()
        docToDel.delete()

    else:
        form = DocumentForm() # A empty, unbound form

# Load documents for the list page
   documents = Document.objects.all()

# Render list page with the documents and the form
    return render_to_response(
       'Main_street_6_flat_1.html',
        {'documents': documents, 'form': form},
             context_instance=RequestContext(request)
    )

1 个答案:

答案 0 :(得分:0)

您可以使用request.get_full_path()获取所请求页面的路径。

另请参阅this related questionread the official docs here