tmpbook/django-with-vuejs

请问用这种方式搭建的环境如何创建上传文件表单与django交互。

ssfdust opened this issue · 5 comments

因为页面内容全部是通过vue来写的,但是在vue中是没法写{{form}}的。所以没法使用django的forms模块。那该怎么办呢。

@ssfdust django的forms模块设计结合模板来用很高效的,而我们现在已经摒弃后端模板渲染这种方式,变成前后端分离了,forms模板的部分功能比如validate之类应该也可以用吧,你多看看文档,比如:
application/x-www-form-urlencoded是什么原理,

  1. 如何使用django的form类
  2. 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)

如果用django rest framework 写的api,前端post表单的时候crsftoken怎么解决呢?

@hchen1202 #3

@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');

地址

问题已经解决。谢谢。