Редактирование моделей и расширение структуры базы данных в Saleor - PullRequest
2 голосов
/ 06 апреля 2020

Я недавно разослал Saleor 2.9 за веб-приложение, которое я создаю для художественной галереи, которая хочет выставлять свои товары на продажу, а также рекламировать своих художников. Я хочу, чтобы у меня была куча карточек (например, компонентов «нашей команды»), которые извлекают данные из таблицы «Исполнители» на серверной стороне, где хранится информация об именах исполнителей, электронных письмах, происхождении и т. Д. c, и затем отобразите его на внешнем интерфейсе. Я изо всех сил пытаюсь понять, как изменить модели / БД, чтобы создать новую таблицу «Исполнители» с именем, адресом электронной почты, информацией, а затем создать отношения, похожие на многие другие, с продуктами, которые я заполнил в D C, придание продукту атрибута «создан». В каталоге / dashboard есть тонны файлов моделей, и даже когда я изменяю базовые модели для создания класса художника, я не знаю, как заставить его отображаться на панели инструментов, чтобы можно было создавать / изменять художников из там.

Я хотел бы сделать так, чтобы клиент (нетехнический) мог добавлять исполнителей и показывать их на странице исполнителей, которую я сделаю, что-то вроде того, что товары появляются на их страницах (но, очевидно, я не могу создайте новую категорию «Артист», так как артисты не могут иметь цены или стоимость доставки, поскольку они люди, и есть другие атрибуты, которые я хотел бы получить по электронной почте, которых не может быть у продукта. Они также отличаются от сотрудников на веб-сайте, поэтому я не могу используйте функциональность «управления персоналом».)

Я смотрел на этот вопрос, но с тех пор структура Saleor изменилась, и это было относительно незначительное атрибутивное изменение существующего класса (User), так как против создания и интеграции нового класса. Я удивлен, что, несмотря на тщательный поиск чего-либо о том, как сделать что-то столь же простое, как создание новой модели, в Интернете практически нет документации и дискуссий; Я должен что-то упустить.

Пожалуйста, помогите :) Спасибо!

1 Ответ

0 голосов
/ 02 мая 2020

Способ создания новых моделей django (а бэкэнд Салора django основан на):

  1. Вам следует создать новое приложение в бэкэнде своего магазина (django часть продавца) с:

    $ python manage.py startapp artist

  2. Создайте модель своего художника со всеми необходимыми полями, такими как электронная почта и т. д. c ... в файле: artist/models.py.
  3. Измените модель продукта в файле product/models.py, импортировав модели Artist и добавив к нему отношение ForeignKey (например).
  4. Зарегистрируйте новый Приложение Artist в вашем settings.py "INSTALLED_APPS".
  5. Run python manage.py makemigrations ... (проверьте, что они содержат ваши изменения в моделях)
  6. Run python manage.py migrate.

Так и должно быть. меньше, чем я что-то подделываю, в этом случае, пожалуйста, напишите, когда вы продвинулись с этим.


Примечания:

  • Вы может потребоваться сначала выполнить резервное копирование вашей БД.
  • Также при применении этих миграций django запросит у вас значение заполнителя для продуктов, которые в вашей БД до Product имели поле Artist.

Ссылки:

...