python - 在 Saleor 中编辑模型和扩展数据库结构
问题描述
我最近将 Saleor 2.9 用于我正在为一个艺术画廊构建的 Web 应用程序,该画廊希望展示他们的产品进行销售,并为他们的艺术家提供一些宣传。我希望能够有一堆卡片(比如“我们的团队”组件)从后端的 Artists 表中提取数据,该表存储有关艺术家姓名、电子邮件、来源等的信息,然后显示它在前端。我正在努力查看如何修改模型/数据库以创建一个包含名称、电子邮件、信息的新“艺术家”表,然后与我在 DC 中填充的产品创建类似多对多的关系,提供产品“创建者”属性。/dashboard 目录中有大量模型文件,即使我对核心模型进行更改以创建艺术家类,我也不会
我想让客户(非技术人员)可以添加艺术家并让他们出现在我将制作的艺术家页面上,有点像产品出现在他们的页面上(但显然我无法创建一个新类别“艺术家“因为艺术家不能像人一样有价格或运费;还有其他我想要的属性,比如产品不能有的电子邮件。他们也与网站上的员工不同,所以我不能使用“员工管理”功能。)
我查看了这个问题,但从那时起 Saleor 结构发生了变化,与创建和集成新类相比,这是对现有类(用户)的相对较小的属性更改。令我惊讶的是,尽管广泛搜索有关如何做像创建新模型这样简单的事情的任何东西,但在线文档和讨论却很少;我肯定错过了什么。
请帮忙:)谢谢!
解决方案
创建新模型的 django 方法(并且 Saleor 的后端是基于 django 的)是:
- 您应该在商店后端(salesor 的 django 部分)上创建一个新应用程序:
$ python manage.py startapp artist
- 创建您的艺术家模型,在文件中包含您想要的所有字段,例如电子邮件等
artist/models.py
... product/models.py
通过导入 Artist 模型并向其添加 ForeignKey(例如)关系来修改文件中的 Product 模型。settings.py
在您的“INSTALLED_APPS”中注册新的艺术家应用程序。- 运行
python manage.py makemigrations
...(检查它们是否包含您对模型的更改) - 运行
python manage.py migrate
。
应该是这样的。'少我忘记了一些东西,在这种情况下,请在你向前推进时回帖。
笔记:
- 您可能需要先备份您的数据库。
- 此外,在应用这些迁移时,django 会要求您提供产品的占位符值,这些产品在您的数据库中之前的 Product 具有 Artist 字段。
参考:
推荐阅读
- c# - 这是链接异步调用(C#/WPF)的正确方法吗?
- windows - 无法连接到 Docker 守护程序 WINDOWS
- oracle - 如何使用 oracle 数据库 10g 安装 oracle APEX 20.1
- linux - 如果我们的搜索/替换模式包含多个正斜杠,如何在 Vim/Linux 中搜索和替换?
- regex - 在 Scala 中匹配 IP 地址
- python - 如何从不和谐的成员那里获取角色名称
- python - Sympy.plot 不为 x > 0 绘制平方根图
- c# - 无法访问容器外的文件夹
- javascript - Node.js For() 循环未按预期工作
- javascript - 将对象转换为数字