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.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.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.
- 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 asExternal ID
as well asunique
(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.
- class heroku_connect.db.models.fields.HerokuConnectFieldMixin(*args, **kwargs)[source]¶
Base mixin for Heroku Connect fields.
- 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 usesDecimal
values and casts them to floats when persisting them to PostgreSQL.
- class heroku_connect.db.models.fields.TextArea(*args, **kwargs)[source]¶
Salesforce
Text Area
field.
- class heroku_connect.db.models.fields.TextAreaLong(*args, **kwargs)[source]¶
Salesforce
Text Area (Long)
andText Area (Rich)
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)"]; }Ensure Django does not add foreign key database constraints.
Salesforce
Lookup
field.
Salesforce
Master-Detail
field.