我无法通过表单将数据返回到django视图。我有一个带有文件字段(“ file”)的模型表单,并添加了一个额外的字符字段(“ paths”)。我的初始视图允许获取上载的文件,但是当我尝试集成另一个charfield时,它不起作用,并且总是出现以下错误(最后):
我应该精确地说,我正在使用jquery.uploadfile,并且使用拖放操作来设置“文件”字段。一开始,表单在模板中不是必需的,应该使用我认为的jquery.uploadfile库自动创建。
我想我已经阅读了其他帖子中的所有相关答案,找不到解决方法:)
这是我的表格:
instance
这是我的发布函数视图,适用于上载,但出现错误:
class MonsterForm(forms.ModelForm):
paths = forms.CharField()
class Meta:
model = Monster
fields = ('file','paths',)
这是我的模板:
def post(self, request):
form = MonsterForm(self.request.POST, self.request.FILES)
print(form.errors)
if form.is_valid():
''' trying to get the field value here '''
print("post : ",self.request.POST.get('paths'))
temp_file = form.save(commit=False)
''' some code '''
temp_file.save()
# data.result sent back to template :
data = {'is_valid': True, 'name': temp_file.title, 'url': temp_file.get_absolute_url()}
''' just for tests '''
else:
data = {'is_valid': False}
return JsonResponse(data)
和错误:
<form action="" method="post" enctype="multipart/form-data">
{% csrf_token %}
<input type="text" name="paths" id="id_paths" value="test"/>
<input id="fileupload" type="file" name="file" multiple style="display: none; " data-url="{% url 'upload' %}" data-form-data='{"csrfmiddlewaretoken": "{{ csrf_token }}"}'/>
</form>
我添加了和文本输入,但仍然无法正常工作,知道吗?