2016-08-22 67 views
0

我可以使用django在同一个文件夹中上传两个不同的文件。但是我必须将它上传到两个不同的文件夹,并将我上传的文件重命名为target。{file_extension}和probe。{file_extension}。我不知道,因为我是django的初学者。请任何人都可以帮我解决我的问题。 我的代码是:使用django在两个不同的文件夹中上传和重命名两个不同的文件?

在Django model.py

dirname = datetime.now().strftime('%Y.%m.%d.%H.%M.%S') 

class Document(models.Model): 
docfile = models.FileField(upload_to=dirname) 

在views.py

def test(request): 
    if request.method == 'POST': 
     form = DocumentForm(request.POST, request.FILES) 
     if form.is_valid(): 
      newdoc = Document(docfile=request.FILES['docfile']) 
      newdoc.save()      

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

    documents = Document.objects.all() 

    return render(
     request, 
     'personal/basic.html', 
     {'documents': documents, 'form': form} 
    ) 

在我basic.html

<form action="/simulation/" method="post" enctype="multipart/form-data" single> 
     {% csrf_token %} 
     <p>{{ form.non_field_errors }}</p> 
     <p>{{ form.docfile.label_tag }} {{ form.docfile.help_text }}</p> 
     <p> 
      {{ form.docfile.errors }} 
      {{ form.docfile }} 
     <input type="submit" value="Upload" name = "file1"/></p>   
</form> 

回答

2

如果你检查Django文档为FileField你看到upload_to支持自定义方法:

(从Django文档)

def user_directory_path(instance, filename): 
    # file will be uploaded to MEDIA_ROOT/user_<id>/<filename> 
    return 'user_{0}/{1}'.format(instance.user.id, filename) 

class MyModel(models.Model): 
    upload = models.FileField(upload_to=user_directory_path) 

,你可以在你的自定义的方法看你有没有访问当前实例可用于生成自定义的路径保存文件。

相关问题