我可以使用django在同一个文件夹中上传两个不同的文件。但我必须将其上传到两个不同的文件夹,并将我上传的文件重命名为目标。{file_extension}和probe。{file_extension}。我不知道因为我是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>
答案 0 :(得分:2)
如果您查看FileField的django文档,则会看到upload_to支持自定义方法:
(来自django docs)
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)
正如您在自定义方法中看到的那样,您可以访问当前实例,该实例可用于生成保存文件的自定义路径。