首页 > 解决方案 > 在 Saleor 中编辑模型和扩展数据库结构

问题描述

我最近将 Saleor 2.9 用于我正在为一个艺术画廊构建的 Web 应用程序,该画廊希望展示他们的产品进行销售,并为他们的艺术家提供一些宣传。我希望能够有一堆卡片(比如“我们的团队”组件)从后端的 Artists 表中提取数据,该表存储有关艺术家姓名、电子邮件、来源等的信息,然后显示它在前端。我正在努力查看如何修改模型/数据库以创建一个包含名称、电子邮件、信息的新“艺术家”表,然后与我在 DC 中填充的产品创建类似多对多的关系,提供产品“创建者”属性。/dashboard 目录中有大量模型文件,即使我对核心模型进行更改以创建艺术家类,我也不会

我想让客户(非技术人员)可以添加艺术家并让他们出现在我将制作的艺术家页面上,有点像产品出现在他们的页面上(但显然我无法创建一个新类别“艺术家“因为艺术家不能像人一样有价格或运费;还有其他我想要的属性,比如产品不能有的电子邮件。他们也与网站上的员工不同,所以我不能使用“员工管理”功能。)

我查看了这个问题,但从那时起 Saleor 结构发生了变化,与创建和集成新类相比,这是对现有类(用户)的相对较小的属性更改。令我惊讶的是,尽管广泛搜索有关如何做像创建新模型这样简单的事情的任何东西,但在线文档和讨论却很少;我肯定错过了什么。

请帮忙:)谢谢!

标签: pythondjangographqle-commercesaleor

解决方案


创建新模型的 django 方法(并且 Saleor 的后端是基于 django 的)是:

  1. 您应该在商店后端(salesor 的 django 部分)上创建一个新应用程序:

    $ python manage.py startapp artist

  2. 创建您的艺术家模型,在文件中包含您想要的所有字段,例如电子邮件等artist/models.py...
  3. product/models.py通过导入 Artist 模型并向其添加 ForeignKey(例如)关系来修改文件中的 Product 模型。
  4. settings.py在您的“INSTALLED_APPS”中注册新的艺术家应用程序。
  5. 运行python manage.py makemigrations...(检查它们是否包含您对模型的更改)
  6. 运行python manage.py migrate

应该是这样的。'少我忘记了一些东西,在这种情况下,请在你向前推进时回帖。


笔记:

  • 您可能需要先备份您的数据库。
  • 此外,在应用这些迁移时,django 会要求您提供产品的占位符值,这些产品在您的数据库中之前的 Product 具有 Artist 字段。

参考:


推荐阅读