netlify cms Гэтсби получает "должен иметь идентификатор_установки установлен" для коллекции - PullRequest
0 голосов
/ 12 декабря 2018

Привет, я работаю с gatsby-starter-netlify-cms и настроил дополнительный блог под названием "Bios". Я использовал блог в качестве шаблона и правильно отображал его из файла .md,проблема в том, что когда я пытаюсь обновить или добавить новую биографию, менеджер контента отображается правильно, однако, когда я нажимаю «опубликовать», он фактически никогда не публикует изменения (зеленая линия исчезает навсегда ...)

Консоль показывает: «Uncaught (in обещание) Ошибка: Коллекция должна иметь имя поля, которое является действительным идентификатором записи, или должно иметь установленный идентификатор_поля»

репо в https://github.com/theMakersOrg/theMakersWebsiteV2

вот код в моем config.yaml

backend:
  name: git-gateway
  branch: master

media_folder: static/img
public_folder: /img

collections:
  - name: 'blog'
    label: 'Blog'
    folder: 'src/pages/blog'
    create: true
    slug: '{{year}}-{{month}}-{{day}}-{{slug}}'
    fields:
      - {
          label: 'Template Key',
          name: 'templateKey',
          widget: 'hidden',
          default: 'blog-post',
        }
      - { label: 'Title', name: 'title', widget: 'string' }
      - { label: 'Publish Date', name: 'date', widget: 'datetime' }
      - { label: 'Description', name: 'description', widget: 'text' }
      - { label: 'Body', name: 'body', widget: 'markdown' }
      - { label: 'Tags', name: 'tags', widget: 'list' }

  - name: 'bios'
    label: 'Bio'
    folder: 'src/pages/bios'
    create: true
    slug: '{{year}}-{{month}}-{{day}}-{{slug}}'
    fields:
      - {
          label: 'Template Key',
          name: 'templateKey',
          widget: 'hidden',
          default: 'bio-post',
        }
      - { label: 'Name', name: 'name', widget: 'string' }
      - { label: 'Publish Date', name: 'publishDate', widget: 'datetime' }
      - { label: 'Description', name: 'description', widget: 'text' }
      - { label: 'image', name: 'image1', widget: 'image' }
      - { label: 'Body', name: 'body', widget: 'markdown' }
      - { label: 'Tags', name: 'tags', widget: 'list' }

  - name: 'pages'
    label: 'Pages'
    files:
      - file: 'src/pages/about/index.md'
        label: 'About'
        name: 'about'
        fields:
          - {
              label: 'Template Key',
              name: 'templateKey',
              widget: 'hidden',
              default: 'about-page',
            }
          - { label: 'Title', name: 'title', widget: 'string' }
          - { label: 'Body', name: 'body', widget: 'markdown' }
      - file: 'src/pages/products/index.md'
        label: 'Products Page'
        name: 'products'
        fields:
          - {
              label: 'Template Key',
              name: 'templateKey',
              widget: 'hidden',
              default: 'product-page',
            }
          - { label: Title, name: title, widget: string }
          - { label: Image, name: image, widget: image }
          - { label: Heading, name: heading, widget: string }
          - { label: Description, name: description, widget: string }
          - {
              label: Intro,
              name: intro,
              widget: object,
              fields:
                [
                  { label: Heading, name: heading, widget: string },
                  { label: Description, name: description, widget: text },
                  {
                    label: Blurbs,
                    name: blurbs,
                    widget: list,
                    fields:
                      [
                        { label: Image, name: image, widget: image },
                        { label: Text, name: text, widget: text },
                      ],
                  },
                ],
            }
          - {
              label: Main,
              name: main,
              widget: object,
              fields:
                [
                  { label: Heading, name: heading, widget: string },
                  { label: Description, name: description, widget: text },
                  {
                    label: Image1,
                    name: image1,
                    widget: object,
                    fields:
                      [
                        { label: Image, name: image, widget: image },
                        { label: Alt, name: alt, widget: string },
                      ],
                  },
                  {
                    label: Image2,
                    name: image2,
                    widget: object,
                    fields:
                      [
                        { label: Image, name: image, widget: image },
                        { label: Alt, name: alt, widget: string },
                      ],
                  },
                  {
                    label: Image3,
                    name: image3,
                    widget: object,
                    fields:
                      [
                        { label: Image, name: image, widget: image },
                        { label: Alt, name: alt, widget: string },
                      ],
                  },
                ],
            }
          - {
              label: Testimonials,
              name: testimonials,
              widget: list,
              fields:
                [
                  { label: Quote, name: quote, widget: string },
                  { label: Author, name: author, widget: string },
                ],
            }
          - { label: Full_image, name: full_image, widget: image }
          - {
              label: Pricing,
              name: pricing,
              widget: object,
              fields:
                [
                  { label: Heading, name: heading, widget: string },
                  { label: Description, name: description, widget: string },
                  {
                    label: Plans,
                    name: plans,
                    widget: list,
                    fields:
                      [
                        { label: Plan, name: plan, widget: string },
                        { label: Price, name: price, widget: string },
                        {
                          label: Description,
                          name: description,
                          widget: string,
                        },
                        { label: Items, name: items, widget: list },
                      ],
                  },
                ],
            }

1 Ответ

0 голосов
/ 12 декабря 2018

Примечание. Коллекции папок должны содержать хотя бы одно поле с именем title для создания новых входных слагов.Это поле должно использовать виджет строки по умолчанию.Метка для поля может быть любым строковым значением.Если вы хотите использовать другое поле в качестве идентификатора, задайте поле identifier_field для имени поля.

Необходимо установить поле идентификатора на основе docs

- name: 'bios'
label: 'Bio'
folder: 'src/pages/bios'
create: true
slug: '{{year}}-{{month}}-{{day}}-{{slug}}'
format: 'frontmatter'
identifier_field: makerName
fields:
  - {
      label: 'Template Key',
      name: 'templateKey',
      widget: 'hidden',
      default: 'bio-post',
    }
  - { label: 'Maker Name', name: 'makerName', widget: 'string' }
  - { label: 'Publish Date', name: 'publishDate', widget: 'datetime' }
  - { label: 'Description', name: 'description', widget: 'text' }
  - { label: 'image', name: 'image1', widget: 'image' }
  - { label: 'Body', name: 'body', widget: 'markdown' }
  - { label: 'Tags', name: 'tags', widget: 'list' }
...