我尝试从Django中的Form上传文件 我使用Django 1.10。
我的表格
<form id='form_' enctype="multipart/form-data">
{% csrf_token %}
<input id="fileupload" data-url="{% url 'analyzer:upload_files' %}"
data-form-data='{"csrfmiddlewaretoken": "{{ csrf_token }}"}'
type="file" name="file" multiple>
<p>Drag your file(s) here or click in this area.</p>
</form>
我的观点
def upload_files(request):
print(request.FILES, request.user.username)
if request.POST:
print('ok')
form = UploadFileForm(request.POST, request.FILES)
if form.is_valid():
print('YEEEES')
return JsonResponse({'data':'ok', 'is_valid': True})
else:
return JsonResponse({'data':'Bad', 'is_valid': False})
my forms.py
from django import forms
from .models import File
class UploadFileForm(forms.ModelForm):
class Meta:
model = File
fields = ('file_upload','user',)
我的模特
from django.db import models
def user_directory_path(instance, filename):
# file will be uploaded to MEDIA_ROOT/user_<id>/<filename>
return ('user_%s/%s' %(instance.user.id, filename))
class File(models.Model):
id = models.IntegerField(primary_key=True)
id_user = models.IntegerField()
user = models.TextField()
uploaded_at = models.DateTimeField(auto_now_add=True)
file_upload = models.FileField(upload_to='files/')
file_size = models.IntegerField()
file_name = models.TextField()
我不知道我做错了什么。我的表格无效。 请帮我! 附: 不过,我正在尝试单独为每个用户保存文件,但是来自Internet的示例无法帮助
答案 0 :(得分:1)
您应该至少显示form.errors
的内容,以便我们和用户知道导致该内容的原因,而不仅仅是显示该表单无效。
但是,从您的代码中可以清楚地看到表单需要user
字段的值,但您的HTML不提供该字段。