Django和Salesforce Web领导

时间:2016-03-08 18:38:00

标签: django django-forms salesforce

我们让网站开发人员在Django中重新设计整个网站,这些是来自我们网站开发人员的问题,我对如何回答没有任何真正的知识,所以我认为这里的某个人可能会提供帮助。

我们遇到了一些网络问题导致并将其映射到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="SFDCidhere">
<input type=hidden name="retURL" value="http://">

<!--  ----------------------------------------------------------------------  -->
<!--  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="emailaddresshere">                                     -->
<!--  ----------------------------------------------------------------------  -->

<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="company">Company</label><input  id="company" maxlength="40" name="company" size="20" type="text" /><br>

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

Subject:<textarea  id="00N1600000EgFuw" name="00N1600000EgFuw" rows="3" type="text" wrap="soft"></textarea><br>

Contact me:<input  id="00N1600000EvgRY" name="00N1600000EvgRY" type="checkbox" value="1" /><br>

newsletter:<input  id="00N1600000EvgRd" name="00N1600000EvgRd" type="checkbox" value="1" /><br>

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

</form>

这就是SFDC的网络引导,现在似乎有效。

然而,他们有两个我不确定的问题,并希望得到以下方面的帮助:

1)新网站的规格要求返回页面是表单发送的页面(即没有重定向;我们打算做一个“谢谢”页面作为弹出窗口点击() - 如何通过API完成?我希望发送一个空的retURL值应该这样做,但我们只是回到一个带有salesforce.com URL的空白页面;

2)是否可以为两个复选框字段自定义“name”参数(如果没有,那么我们必须在Django模板中破解整个表单,而不能让Django本地渲染表单,因为你可以' t有一个模型表单字段名称以数字开头......)。这不是问题,但我想知道以备将来参考。

如果有人有任何见解,我很乐意听到并传递给他们!

非常感谢。

2 个答案:

答案 0 :(得分:0)

不确定您的解决方案。

您可以使用Partner WSDL或Enterprise WSDL插入,更新,升级,删除数据的常用方法

Parnter WSDL:   不是来自您的salesforce组织的自定义,但它可能是获取数据的常用方法。

在python中你可以使用这个包  https://pypi.python.org/pypi/pyforce/1.4

并参考此 https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_partner.htm

Enterprise WSDL将显示您的salesforce组织状态(包括字段和对象)。但是你的一个对象或字段正在改变它可能是错误。

所以我建议使用api来控制重定向功能和动作。

答案 1 :(得分:0)

我的解决方法如下例所示

    from captcha.fields import ReCaptchaField
    from django.conf import settings

    def set_field_html_name(cls, new_name):
        """
        This creates wrapper around the normal widget rendering,
        allowing for a custom field name (new_name).
        """
        old_render = cls.widget.render

        def _widget_render_wrapper(name, value, attrs=None):
            return old_render(new_name, value, attrs)

        cls.widget.render = _widget_render_wrapper


    class WebToLeadForm(forms.Form):
        # <keep all fields here>
        # example field below
        referred_by = forms.CharField(label="Referred By", required=False)
        # The reCAPTCHA in this form uses keys from settings.
        captcha = ReCaptchaField()

        set_field_html_name(referred_by, settings.SF_REFERRED_BY)

settings.py SF_REFERRED_BY ='00xxxxxxxxxxxx'