每次创建项目时,如何创建文件夹和子文件夹。文件夹的位置可以位于
media ----- Projects |----Project 1 |-----Subfolder 1
| |-----Subfolder 2
| |-----Subfolder 3
|
|----Project 2 |-----Subfolder 1
| |-----Subfolder 2
| |-----Subfolder 3
|
|----Project 3 |-----Subfolder 1
|-----Subfolder 2
|-----Subfolder 3
views.py
def create_project(request):
form = ProjectForm(request.POST or None, request.FILES or None)
if form.is_valid():
project = form.save(commit=False)
project.save()
return render(request, 'projects/detail.html', {'project': project})
context = {
"form": form,
}
return render(request, 'projects/create_project.html', context)
答案 0 :(得分:1)
您可以使用内置的python函数从django视图中操纵文件系统。为此,您需要导入os模块。示例代码显示了the article的摘录:
import os;
#will check if c:\temp\python exists and if no will create it
dir = os.path.join("C:\\","temp","python")
if not os.path.exists(dir):
os.mkdir(dir)
在django中使用它时,您需要了解运行您的应用程序的进程权限有限,因此某些位置将无法访问。从Django视图执行时,相对路径设置为 PROJECT_ROOT (您在settings.py中定义)。但是,上面的代码与保管箱无关。为了管理Dropbox中的文件夹,您需要使用为此提供的API。
作为附加说明,django在上传文件时会自动在媒体文件夹中创建文件夹(如果您在FileField的'upload_to' parameter中指定了一个文件夹)。您可以通过使用可以返回不同路径(取决于您保存的内容)的函数替换upload_to来更改行为。如果您想朝那个方向this may be usefull