在Saleor中编辑模型并扩展数据库结构



我最近为一家美术馆开发了一款网络应用程序,该应用程序希望展示他们的产品并为他们的艺术家做一些宣传。我希望能够拥有一堆卡片(如"我们的团队"组件(,从后端的Artists表中提取数据,该表存储艺术家的姓名、电子邮件、出身等信息,然后在前端显示。我正在努力了解如何修改模型/DB,以创建一个包含名称、电子邮件、信息的新"Artists"表,然后与我在DC中填充的产品建立多人关系,为产品赋予"创建者"属性。整个/dashboard目录中有大量的模型文件,即使我对核心模型进行更改以创建艺术家类,我也不知道如何将其显示在面板上,以便可以从那里创建/修改艺术家。

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

我研究了这个问题,但从那时起,Saleor结构发生了变化,与创建和集成新类相比,这是对现有类(User(的一个相对较小的属性变化。令我惊讶的是,尽管我广泛搜索了关于如何做像创建新模型这样简单的事情的任何内容,但网上几乎没有文档和讨论;我一定是错过了什么。

请帮忙:(谢谢!

创建新模型的django方法是:

  1. 你应该在你的商店后端(saleor的django部分(创建一个新的应用程序:

    $ python manage.py startapp artist

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

应该是这样的。"如果我伪造了什么,在这种情况下,请在你完成这项工作后回复。"。


备注:

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

参考文献:

  • django模型
  • django迁移

最新更新