Netlify CMS - как хранить массив объектов через коллекции config.yml - PullRequest
1 голос
/ 05 апреля 2019

Я немного запутался с CMS Netlify, особенно когда речь идет об определении схемы с помощью config.yml. Я использую Netlify CMS со статическим сайтом Gatsby, чтобы позволить конечному пользователю обновлять небольшие кусочки динамических данных на сайте.

Чего я пытаюсь достичь:

Я хочу, чтобы тип данных в CMS позволял пользователю создавать новые даты тура с максимальной и текущей занятостью (т. Е. Сколько человек в настоящее время забронировано в указанном туре).

Чтобы достичь этого, я сейчас использовал этот config.yml (этот config.yml находится в static/admin моего проекта Gatsby с корневым каталогом проекта):

backend:
  name: git-gateway
  branch: master

publish_mode: editorial_workflow

media_folder: src/images/uploads
public_folder: /uploads

collections:
  - name: "tourInfo"
    label: "Tour Info"
    description: "Upcoming tours and their availability"
    files:
      - label: "tour"
        name: "Tour"
        file: "static/tours.json"
        fields:
          - {label: "Tour Date", name: "date", widget: "datetime"}
          - {label: "Total Places", name: "totalPlaces", widget: "number"}
          - {label: "Filled Places", name: "filledPlaces", widget: "number"}

Кажется, это не то, что я ищу, я не могу создать множество экземпляров дат тура, но только один. Возможно, это мое фундаментальное недоразумение, когда речь идет о типах коллекций, но я подумал, что могу определить tour как отдельный файл, а затем заполнить его многочисленными примерами тура.

Может ли кто-нибудь указать мне правильное направление, как получить этот массив точек данных тура без смерти по файлу?

1 Ответ

1 голос
/ 05 апреля 2019

Вы можете сделать эту коллекцию коллекцией папок или использовать виджет списка .

Пример использования списка с вашим кодом:

collections:
  - name: "tourInfo"
    label: "Tour Info"
    description: "Upcoming tours and their availability"
    files:
      - label: "tour"
        name: "Tour"
        file: "static/tours.json"
        fields:
          - label: "Tour List"
            name: "tourList"
            widget: "list"
            fields:
              - {label: "Tour Date", name: "date", widget: "datetime"}
              - {label: "Total Places", name: "totalPlaces", widget: "number"}
              - {label: "Filled Places", name: "filledPlaces", widget: "number"}

Таким образом, ваша дата тура, место и т. Д. Могут быть помещены в список fields.Для большого объема данных это будет выглядеть очень неуправляемо, хотя, возможно, вы захотите использовать пользовательский метод для разбивки на страницы или использовать коллекцию папок.

...