请问用这种方式搭建的环境如何创建上传文件表单与django交互。
ssfdust opened this issue · 5 comments
ssfdust commented
因为页面内容全部是通过vue来写的,但是在vue中是没法写{{form}}的。所以没法使用django的forms模块。那该怎么办呢。
tmpbook commented
@ssfdust django的forms模块设计结合模板来用很高效的,而我们现在已经摒弃后端模板渲染这种方式,变成前后端分离了,forms模板的部分功能比如validate之类应该也可以用吧,你多看看文档,比如:
application/x-www-form-urlencoded
是什么原理,
- 如何使用django的form类
- https://docs.djangoproject.com/en/1.11/ref/forms/api/
>>> data = {'subject': 'hello',
... 'message': 'Hi there',
... 'sender': 'foo@example.com',
... 'cc_myself': True}
>>> f = ContactForm(data)
TrinityHC commented
如果用django rest framework 写的api,前端post表单的时候crsftoken怎么解决呢?
tmpbook commented
@hchen1202 @ssfdust
Django 提供了一段js来生成csrftoken,你可以生成然后加到表单中,比禁用掉更完美,我找找:
// using jQuery
function getCookie(name) {
var cookieValue = null;
if (document.cookie && document.cookie !== '') {
var cookies = document.cookie.split(';');
for (var i = 0; i < cookies.length; i++) {
var cookie = jQuery.trim(cookies[i]);
// Does this cookie string begin with the name we want?
if (cookie.substring(0, name.length + 1) === (name + '=')) {
cookieValue = decodeURIComponent(cookie.substring(name.length + 1));
break;
}
}
}
return cookieValue;
}
var csrftoken = getCookie('csrftoken');
ssfdust commented
问题已经解决。谢谢。