Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 带有django和自定义脚本的HTML表单操作_Python_Html_Django_Django Forms_Salesforce - Fatal编程技术网

Python 带有django和自定义脚本的HTML表单操作

Python 带有django和自定义脚本的HTML表单操作,python,html,django,django-forms,salesforce,Python,Html,Django,Django Forms,Salesforce,我在django/python网站上有以下html表单 <div class="contact-main"> <form action="." method="POST">{% csrf_token %} <label for="first_name" style="margin-top: 0px;">First<span class="required">*</span></

我在django/python网站上有以下html表单

<div class="contact-main">
        <form action="." method="POST">{% csrf_token %}        

          <label for="first_name" style="margin-top: 0px;">First<span class="required">*</span></label>
          {{ form.first_name }}
          {{ form.first_name.errors }}
          <label for="last_name">Last Name <span class="required">*</span></label>
          {{ form.last_name }}
          {{ form.last_name.errors }}
          <label for="email">Email Address <span class="required">*</span></label>
          {{ form.email }}
          {{ form.email.errors }}
          <label for="phone">Phone Number <span class="required">*</span></label>
          {{ form.phone }}
          {{ form.phone.errors }}
          <label for="company">Company <span class="required">*</span></label>
          {{ form.company }}
          {{ form.company.errors }}
          <label for="Title">Title <span class="required">*</span></label>
          {{ form.title }}
          {{ form.title.errors }}
          <label for="message">Message</label>
          {{ form.message }}
          {{ form.message.errors }}
          <input type="submit" value="Submit">
        </form> 
      </div>

{%csrf_令牌%}
首先*
{{form.first_name}
{{form.first_name.errors}
姓*
{{form.last_name}
{{form.last_name.errors}}
电子邮件地址*
{{form.email}
{{form.email.errors}
电话号码*
{{form.phone}
{{form.phone.errors}
公司*
{{form.company}}
{{form.company.errors}
头衔*
{{form.title}}
{{form.title.errors}}
消息
{{form.message}}
{{form.message.errors}
现在,我正试图将我从这张表格中获得的潜在客户整合到salesforce中。Salesforce给了我以下脚本:

<!--  ----------------------------------------------------------------------  -->
<!--  NOTE: Please add the following <META> element to your page <HEAD>.      -->
<!--  If necessary, please modify the charset parameter to specify the        -->
<!--  character set of your HTML page.                                        -->
<!--  ----------------------------------------------------------------------  -->

<META HTTP-EQUIV="Content-type" CONTENT="text/html; charset=UTF-8">

<!--  ----------------------------------------------------------------------  -->
<!--  NOTE: Please add the following <FORM> element to your page.             -->
<!--  ----------------------------------------------------------------------  -->

<form action="https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST">

<input type=hidden name="oid" value="00DF00000008Fp8">
<input type=hidden name="retURL" value="http://www.myurl.com">

<!--  ----------------------------------------------------------------------  -->
<!--  NOTE: These fields are optional debugging elements. Please uncomment    -->
<!--  these lines if you wish to test in debug mode.                          -->
<!--  <input type="hidden" name="debug" value=1>                              -->
<!--  <input type="hidden" name="debugEmail" value="myname@myname.com">    -->
<!--  ----------------------------------------------------------------------  -->

<label for="first_name">First Name</label><input  id="first_name" maxlength="40" name="first_name" size="20" type="text" /><br>

<label for="last_name">Last Name</label><input  id="last_name" maxlength="80" name="last_name" size="20" type="text" /><br>

<label for="email">Email</label><input  id="email" maxlength="80" name="email" size="20" type="text" /><br>

<label for="title">Title</label><input  id="title" maxlength="40" name="title" size="20" type="text" /><br>

<label for="company">Company</label><input  id="company" maxlength="40" name="company" size="20" type="text" /><br>

<label for="description">Description</label><textarea name="description"></textarea><br>

<label for="phone">Phone</label><input  id="phone" maxlength="40" name="phone" size="20" type="text" /><br>

<input type="submit" name="submit">

</form>

名字
姓氏
电子邮件
标题
公司
说明
电话

现在我有点困惑如何在这里工作。我知道我需要插入表单操作,但我担心django模板(也称为stuff
{{form.last_name}}
)无法与此脚本正常工作。有什么想法吗?关于如何让这一切继续下去,我们将不胜感激

如果您向salesforce而不是您自己的应用程序发布,则您将无法利用所有表单错误显示或视图检查发布数据时发生的验证。用户将转到sales force,然后被重定向到retURL(我猜是这样)

如果您希望使用所有django表单内容,并且仍然能够将数据发送给salesforce,那么您可以在确认表单有效后从django视图发送帖子

您可以使用有效表单中的数据向salesforce生成POST请求。本例使用,但您可以使用任何您喜欢的urllib

import requests

#do some testing to see that this code is correct
SALES_FORCE_SUCCESS_CODE = 201

def form_view(request):
    sales_force_params = {'oid': 'example_id' , 'retURL':'http://example.com'} 
    #You may not need to include the retURL
    if form.is_valid():
        post_params = form.cleaned_data
        post_params.update(sales_force_params)
        response = requests.post("https://www.salesforce.com/servlet/servlet.WebToLead?encoding=UTF-8" method="POST", params=post_params)

        if response.status_code != SALES_FORCE_SUCCESS_CODE:
            pass 
            #Either your validation wasn't strict enough or something else happened

由于未定义有效负载,这肯定会引发名称错误吗?此外,您还需要编辑代码,因为在method=“POST”之后有一个不需要的额外报价