Accessing Foreign Keys in customization template

This topic contains 2 replies, has 2 voices, and was last updated by Profile photo of ryouji_shiki ryouji_shiki 4 years, 10 months ago.

Viewing 3 posts - 1 through 3 (of 3 total)
  • Author
    Posts
  • #324788 Reply
    Profile photo of ryouji_shiki
    ryouji_shiki
    Member

    Hello,

    I am modifying the template crudEdit.jet to include a way to select a parent object without knowing the id, namely a “popup” list of values on which you double click the object’s description and it assigns the textbox its id.

    Anyways, by now I am able to read the child object’s relationships and see if they are one to many or one to one and get the parent object’s primary key but I was wondering if there is a way to get the child object’s foreign key fields.

    Is this possible?

    Something like $fieldRelatedType/@primaryKey = ‘true’ in the example below but rather $dataType/@foreignKey = ‘true’ or similar…

    
    ...
                                         <jet:iterate select="$dataType/relationships" var="relationship">
                                            <jet:setVariable select="$relationship/targetDataType" var="relatedType" />
                                                <jet:choose>
                                                  <jet:when test="string($relationship/@cardinality) = 'MANY'">
                          
                                                  <!-- do nothing -->
                                                  </jet:when>
                                                <jet:otherwise>
                                                    <jet:iterate select="$relatedType/fields" var="fieldRelatedType">
                                                        <jet:choose>
                                                            <jet:when test="string($fieldRelatedType/@primaryKey) = 'true'">
    ...
    

    Thanks for your time!

    #325026 Reply
    Profile photo of cconway
    cconway
    Member

    Sorry, but it doesn’t look like it’s posible to do by querying a property on the model.

    The DataType has these properties:

    fields
    relationships
    modifiers
    annotateGetters
    persistent

    The Field has these properties:

    primaryKey
    dataType
    description
    collection
    name
    initialValue
    type
    visibility
    modifiers

    The Relationship has these properties:

    targetDataType
    reverseRelationship
    cardinality
    parentDataType
    description
    collection
    name
    initialValue
    type
    visibility
    modifiers

    The only way I can think to do it is to iterate the relationships looking for primary keys that match the fields in the current data type.

    #325104 Reply
    Profile photo of ryouji_shiki
    ryouji_shiki
    Member

    Thanks! I was doing exactly what you suggested but I wanted to know if there was a “more proper” way of doing it.

Viewing 3 posts - 1 through 3 (of 3 total)
Reply To: Accessing Foreign Keys in customization template