Fields

digraph inheritance4750df3133 { bgcolor=transparent; fontsize=14; rankdir=TB; ratio=compress; size="6.0, 8.0"; "AnyType" [URL="#heroku_connect.db.models.fields.AnyType",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``AnyType`` field."]; "HerokuConnectFieldMixin" -> "AnyType" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TextField" -> "AnyType" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BooleanField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "Field" -> "BooleanField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CharField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "Field" -> "CharField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Checkbox" [URL="#heroku_connect.db.models.fields.Checkbox",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Checkbox`` field."]; "HerokuConnectFieldMixin" -> "Checkbox" [arrowsize=0.5,style="setlinewidth(0.5)"]; "BooleanField" -> "Checkbox" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Currency" [URL="#heroku_connect.db.models.fields.Currency",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Currency`` field."]; "Number" -> "Currency" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Date" [URL="#heroku_connect.db.models.fields.Date",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Date`` field."]; "HerokuConnectFieldMixin" -> "Date" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DateField" -> "Date" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DateField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "DateTimeCheckMixin" -> "DateField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Field" -> "DateField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DateTime" [URL="#heroku_connect.db.models.fields.DateTime",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``DateTime`` field."]; "HerokuConnectFieldMixin" -> "DateTime" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DateTimeField" -> "DateTime" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DateTimeCheckMixin" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "DateTimeField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "DateField" -> "DateTimeField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DecimalField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "Field" -> "DecimalField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Email" [URL="#heroku_connect.db.models.fields.Email",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Email`` field."]; "HerokuConnectFieldMixin" -> "Email" [arrowsize=0.5,style="setlinewidth(0.5)"]; "EmailField" -> "Email" [arrowsize=0.5,style="setlinewidth(0.5)"]; "EmailField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "CharField" -> "EmailField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "EncryptedString" [URL="#heroku_connect.db.models.fields.EncryptedString",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``EncryptedString`` field."]; "HerokuConnectFieldMixin" -> "EncryptedString" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CharField" -> "EncryptedString" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ExternalID" [URL="#heroku_connect.db.models.fields.ExternalID",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="External ID field for Salesforce objects."]; "HerokuConnectFieldMixin" -> "ExternalID" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UUIDField" -> "ExternalID" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Field" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Base class for all field types"]; "RegisterLookupMixin" -> "Field" [arrowsize=0.5,style="setlinewidth(0.5)"]; "HerokuConnectFieldMixin" [URL="#heroku_connect.db.models.fields.HerokuConnectFieldMixin",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base mixin for Heroku Connect fields."]; "ID" [URL="#heroku_connect.db.models.fields.ID",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``ID`` field."]; "HerokuConnectFieldMixin" -> "ID" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CharField" -> "ID" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Number" [URL="#heroku_connect.db.models.fields.Number",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Number`` field."]; "HerokuConnectFieldMixin" -> "Number" [arrowsize=0.5,style="setlinewidth(0.5)"]; "DecimalField" -> "Number" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Percent" [URL="#heroku_connect.db.models.fields.Percent",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Percent`` field."]; "Number" -> "Percent" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Phone" [URL="#heroku_connect.db.models.fields.Phone",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Phone`` field."]; "HerokuConnectFieldMixin" -> "Phone" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CharField" -> "Phone" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Picklist" [URL="#heroku_connect.db.models.fields.Picklist",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Picklist`` field."]; "HerokuConnectFieldMixin" -> "Picklist" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CharField" -> "Picklist" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RegisterLookupMixin" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "Text" [URL="#heroku_connect.db.models.fields.Text",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Text`` field."]; "HerokuConnectFieldMixin" -> "Text" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CharField" -> "Text" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TextArea" [URL="#heroku_connect.db.models.fields.TextArea",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Text Area`` field."]; "HerokuConnectFieldMixin" -> "TextArea" [arrowsize=0.5,style="setlinewidth(0.5)"]; "CharField" -> "TextArea" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TextAreaLong" [URL="#heroku_connect.db.models.fields.TextAreaLong",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Text Area (Long)`` and ``Text Area (Rich)`` field."]; "HerokuConnectFieldMixin" -> "TextAreaLong" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TextField" -> "TextAreaLong" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TextField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "Field" -> "TextField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Time" [URL="#heroku_connect.db.models.fields.Time",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Time`` field."]; "HerokuConnectFieldMixin" -> "Time" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TimeField" -> "Time" [arrowsize=0.5,style="setlinewidth(0.5)"]; "TimeField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "DateTimeCheckMixin" -> "TimeField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Field" -> "TimeField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "URL" [URL="#heroku_connect.db.models.fields.URL",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``URL`` field."]; "HerokuConnectFieldMixin" -> "URL" [arrowsize=0.5,style="setlinewidth(0.5)"]; "URLField" -> "URL" [arrowsize=0.5,style="setlinewidth(0.5)"]; "URLField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "CharField" -> "URLField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "UUIDField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "Field" -> "UUIDField" [arrowsize=0.5,style="setlinewidth(0.5)"]; }

Salesforce fields for Django’s ORM.

You can find a list of all Salesforce fields mapped to PostgreSQL here. See Heroku Connect’s mapped data types.

class heroku_connect.db.models.fields.AnyType(*args, **kwargs)[source]

Salesforce AnyType field.

class heroku_connect.db.models.fields.Checkbox(*args, **kwargs)[source]

Salesforce Checkbox field.

class heroku_connect.db.models.fields.Currency(*args, **kwargs)[source]

Salesforce Currency field.

This is used for the money value. On the Salesforce side, the actual currency is specified in a CurrencyIsoCode field (see Currency Field Type), which is however (currently) not mapped by Heroku Connect.

class heroku_connect.db.models.fields.Date(*args, **kwargs)[source]

Salesforce Date field.

class heroku_connect.db.models.fields.DateTime(*args, **kwargs)[source]

Salesforce DateTime field.

Heroku connect create tables with time stamp fields but without time zones, and when it syncs to Salesforce it treats them as UTC. This field will be always making sure that the dates are aware and UTC.

db_type(connection)[source]

Return the database column data type for this field, for the provided connection.

class heroku_connect.db.models.fields.Email(*args, **kwargs)[source]

Salesforce Email field.

class heroku_connect.db.models.fields.EncryptedString(*args, **kwargs)[source]

Salesforce EncryptedString field.

From the Heroku Connect doc:

If the user credentials used to authorize Heroku Connect with Salesforce don’t have View Encrypted Data permission, then encrypted strings will be received from Salesforce in masked format.

It is possible to update the database with a new plain text value and Salesforce will take care of encryption when the new data is pushed from the database. The plain text value in the database will be overwritten with the masked format when the record is next updated with data from Salesforce.

class heroku_connect.db.models.fields.ExternalID(*args, **kwargs)[source]

External ID field for Salesforce objects.

This field uses uuid.uuid4 as a default UUID function.

The corresponding field in Salesforce must be type Text(32). In Salesforce it will display the UUID as a HEX. It should be set as External ID as well as unique (case insensitive).

The field should only be required on Salesforce if you want to insert new records only in your application.

Note

Django does not use Database defaults, should you create new records on Salesforce, you need to make sure Salesforce inserts UUIDs or handle empty External ID fields in your Django application.

get_db_prep_value(value, connection, prepared=False)[source]

Return field’s value prepared for interacting with the database backend.

Used by the default implementations of get_db_prep_save().

class heroku_connect.db.models.fields.HerokuConnectFieldMixin(*args, **kwargs)[source]

Base mixin for Heroku Connect fields.

sf_field_name = None[source]

Field’s Salesforce API name.

Type:

(str)

upsert = False[source]

Whether or not a field is an externalId.

Type:

(bool)

class heroku_connect.db.models.fields.ID(*args, **kwargs)[source]

Salesforce ID field.

class heroku_connect.db.models.fields.Number(*args, **kwargs)[source]

Salesforce Number field.

Allows users to enter any number. Leading zeros are removed.

Numbers in Salesforce are constrained by length and decimal places. Heroku Connect maps those decimal values to double precision floats. To have the same accuracy and avoid Salesforce validation rule issues this field uses Decimal values and casts them to floats when persisting them to PostgreSQL.

get_db_prep_save(value, connection)[source]

Return field’s value prepared for saving into a database.

get_db_prep_value(value, connection, prepared=False)[source]

Return field’s value prepared for interacting with the database backend.

Used by the default implementations of get_db_prep_save().

class heroku_connect.db.models.fields.Percent(*args, **kwargs)[source]

Salesforce Percent field.

class heroku_connect.db.models.fields.Phone(*args, **kwargs)[source]

Salesforce Phone field.

class heroku_connect.db.models.fields.Picklist(*args, **kwargs)[source]

Salesforce Picklist field.

class heroku_connect.db.models.fields.Text(*args, **kwargs)[source]

Salesforce Text field.

class heroku_connect.db.models.fields.TextArea(*args, **kwargs)[source]

Salesforce Text Area field.

formfield(**kwargs)[source]

Return a django.forms.Field instance for this field.

class heroku_connect.db.models.fields.TextAreaLong(*args, **kwargs)[source]

Salesforce Text Area (Long) and Text Area (Rich) field.

class heroku_connect.db.models.fields.Time(*args, **kwargs)[source]

Salesforce Time field.

class heroku_connect.db.models.fields.URL(*args, **kwargs)[source]

Salesforce URL field.

Relationship fields

digraph inheritance34a25a7917 { bgcolor=transparent; fontsize=14; rankdir=TB; ratio=compress; size="6.0, 8.0"; "ConstraintlessForeignObjectMixin" [URL="#heroku_connect.db.models.related.ConstraintlessForeignObjectMixin",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Ensure Django does not add foreign key database constraints."]; "Field" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Base class for all field types"]; "RegisterLookupMixin" -> "Field" [arrowsize=0.5,style="setlinewidth(0.5)"]; "FieldCacheMixin" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Provide an API for working with the model's fields value cache."]; "ForeignKey" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Provide a many-to-one relation by adding a column to the local model"]; "ForeignObject" -> "ForeignKey" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ForeignObject" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Abstraction of the ForeignKey relation to support multi-column relations."]; "RelatedField" -> "ForeignObject" [arrowsize=0.5,style="setlinewidth(0.5)"]; "HerokuConnectFieldMixin" [URL="#heroku_connect.db.models.fields.HerokuConnectFieldMixin",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Base mixin for Heroku Connect fields."]; "Lookup" [URL="#heroku_connect.db.models.related.Lookup",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Lookup`` field."]; "ConstraintlessForeignObjectMixin" -> "Lookup" [arrowsize=0.5,style="setlinewidth(0.5)"]; "HerokuConnectFieldMixin" -> "Lookup" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ForeignKey" -> "Lookup" [arrowsize=0.5,style="setlinewidth(0.5)"]; "MasterDetail" [URL="#heroku_connect.db.models.related.MasterDetail",fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",target="_top",tooltip="Salesforce ``Master-Detail`` field."]; "ConstraintlessForeignObjectMixin" -> "MasterDetail" [arrowsize=0.5,style="setlinewidth(0.5)"]; "HerokuConnectFieldMixin" -> "MasterDetail" [arrowsize=0.5,style="setlinewidth(0.5)"]; "ForeignKey" -> "MasterDetail" [arrowsize=0.5,style="setlinewidth(0.5)"]; "RegisterLookupMixin" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled"]; "RelatedField" [fillcolor=white,fontname="Vera Sans, DejaVu Sans, Liberation Sans, Arial, Helvetica, sans",fontsize=10,height=0.25,shape=box,style="setlinewidth(0.5),filled",tooltip="Base class that all relational fields inherit from."]; "FieldCacheMixin" -> "RelatedField" [arrowsize=0.5,style="setlinewidth(0.5)"]; "Field" -> "RelatedField" [arrowsize=0.5,style="setlinewidth(0.5)"]; }
class heroku_connect.db.models.related.ConstraintlessForeignObjectMixin(*args, **kwargs)[source]

Ensure Django does not add foreign key database constraints.

class heroku_connect.db.models.related.Lookup(*args, **kwargs)[source]

Salesforce Lookup field.

class heroku_connect.db.models.related.MasterDetail(*args, **kwargs)[source]

Salesforce Master-Detail field.