填充Django表单的后端脚本

时间:2016-04-22 22:57:39

标签: python django forms

我正在尝试使用Django创建一个Web前端来执行各种管理任务。我从来不需要一个前端,但现在他们想要不同的BU来使用它们,他们需要一些漂亮的按钮。所以我想做的是:

  1. 用户输入表单数据并提交
  2. 网站访问的外部脚本使用post数据作为args
  3. 用户被重定向到确认页面
  4. 现在我可以发布数据,我可以使用args运行脚本,我只是不知道如何将两者结合起来。我将非常感谢您对我应该研究的任何帮助或提示。我没有发布片段,因为我必须对它们进行消毒,但如果需要,我可以根据要求提供消息。

1 个答案:

答案 0 :(得分:1)

直接交互的最简单方法是利用Ajax,使用Ajax Post将JSON发送到Django,然后将参数作为dict()处理。这是一个例子:

在浏览器(JQuery / JavaScript)中:

    function newModule() {

        var my_data = $("#my_element").val(); // Whatever value you want to be sent.

        $.ajax({
            url: "{% url 'modules' %}",       // Handler as defined in Django URLs. 
            type: "POST",                     // Method.
            dataType: "json",                 // Format as JSON (Default).
            data: {
                path: my_data,                // Dictionary key (JSON). 
                csrfmiddlewaretoken: 
                         '{{ csrf_token }}'   // Unique key.
            },

            success: function (json) {

                // On success do this.

            },

            error: function (xhr, errmsg, err) {

                // On failure do this. 

            }

        });

在服务器引擎(Python)中:

def handle(request):

    # Post request containing the key.  
    if request.method == 'POST' and 'my_data' in request.POST.keys():

        # Retrieving the value.
        my_data = request.POST['my_data']

    # ...

现在您只需要指示HTML表单调用JavaScript函数并将数据传递给引擎。

要在成功后将用户重定向到其他页面,您可以在success功能中使用此功能:

window.location.href = "http://www.example.com";

其中模拟类似于单击锚标记(链接)的反应。

希望这有帮助。