🎤 Builder Talk: The Story Behind Lady Gaga’s Digital Experience – Register now

Initial Value Template Warning - "Template 'article-by-product' not defined, using empty initial value"

4 replies
Last updated: Jun 25, 2021
Hi! I'm trying to use a initial value template in a structure like this example . But the value is not set, and in the browser console there is a warning "Template 'article-by-product' not defined, using empty initial value".What am I doing wrong ?
Jun 25, 2021, 10:15 AM
Here is the code in the deskStructure.js file:
S.documentTypeList('product')
            .title('Product')
            .child(productId =>
              S.list()
                .title('Content')
                .items([
                  S.listItem({
                    id: 'articles-by-product',
                    title: 'All articles',
                    child: () => 
                      S.documentTypeList('docArticle')
                        .title('All articles')
                        .filter('_type == "docArticle" && references($productId)')
                        .params({ productId })
                        .initialValueTemplates([
                          S.initialValueTemplateItem('article-by-product', { productId })
                        ])
                  }),
The initialValueTemplates.js file:

import T from '@sanity/base/initial-value-template-builder';

export default [
    ...T.defaults(),
    
    T.template({
        id: 'article-by-product',
        title: 'Documentation Article',
        description: 'Article for a specific product',
        schemaType: 'docArticle',
        parameters: [{name: 'productId', type: 'string'}],
        value: params => ({
          product: {_type: 'reference', _ref: params.productId}
        })
      })
  ]
And the sanity.json file:

"parts": [
    {
      "name": "part:@sanity/base/schema",
      "path": "./schemas/schema"
    },
    {
      "name": "part:@sanity/desk-tool/structure",
      "path": "./deskStructure.js"
    },
    {
      "name": "part:@sanity/base/initial-value-templates",
      "path": "./initialValueTemplates.js"
    }
  ]
Jun 25, 2021, 10:15 AM
did you restart the server after editing sanity.json?
Jun 25, 2021, 10:24 AM
Initial values will not be set on fields in existing documents. Have you tried creating a new document to see if fields are populated?
Jun 25, 2021, 10:48 AM
user B
newbie's fail, the restart did the job, thanks!
Jun 25, 2021, 12:00 PM

Sanity– build remarkable experiences at scale

Sanity is a modern headless CMS that treats content as data to power your digital business. Free to get started, and pay-as-you-go on all plans.

Was this answer helpful?

Related answers

Get more help in the community Slack

TopicCategoriesFeaturedRepliesLast Updated
Rendering nested block contentJan 18, 2021
List Arrays - Is it Possible to Fill a List Array Within a Schema Asynchronously?Mar 16, 2021
Custom Document Views - Is it Even Possible to Use the Structure Builder?Apr 21, 2022
TypeError: Cannot Read Properties of Null (Reading 'jsonType')Sep 28, 2022
Error in custom validation rule for schema in Slack threadAug 18, 2023
GraphQL query resolving references on a _raw field in GatsbyMay 17, 2022
How to populate a list of values in a Sanity schema using a separate fileSep 6, 2021
Handling dynamic meta titles and descriptions in SanityFeb 25, 2021
Error: unable to resolve image URL from source (undefined)Sep 11, 2022
Extracting referenced images from an object array in Sanity.ioMay 17, 2020

Related contributions

Turbo Start Sanity
- Template

The battle-tested Sanity template that powers Roboto Studio's websites

Go to Turbo Start Sanity

Schema UI - Next.js Sanity Starter
- Template

A Next.js starter template with Next.js 15, Tailwind CSS, shadcn/ui, and Sanity CMS with Live Editing. Get production-ready React components with matching Sanity schemas and queries. Build dynamic pages faster while keeping full control over customization.

Serge Ovcharenko
Go to Schema UI - Next.js Sanity Starter

The Swaddle
- Made with Sanity

A new brand identity to represent a more mature company, to signify The Swaddle’s evolution from publisher to production house, combined with an easier to navigate platform that can surface multiple content types - drawing readers through The Swaddle’s content offering.

Nightjar
Go to The Swaddle