【问题标题】:how to structure our django model [closed]如何构建我们的 django 模型
【发布时间】:2021-05-25 15:08:48
【问题描述】:

我在 django 做网上购物项目。 我将我的项目拆分为管理应用、版主应用、商店应用。

有两种类型的产品-一种由版主插入,另一种由注册商店插入。

我是否需要为这两个应用创建单独的产品模型,

如果我尝试在管理应用程序中提供一个通用产品表,外键将会出现问题。

那么我将如何创建产品模型,单独的(在版主应用程序和商店应用程序中)或通用(在管理应用程序中)

订单模型和库存模型存在同样的问题。

【问题讨论】:

    标签: django


    【解决方案1】:
    class Product(models.Model):
        user = models.Foreignkey(User, null=True, blank=True, ondelete=models.CASCADE)
        shop = models.Foreignkey(Shop, null=True, blank=True, ondelete=models.CASCADE)
        name = models.Charfield(max_length = 50)
        ...
    

    如果添加了用户和店铺,则认为是注册店铺的产品,如果用户和店铺为空,则认为是版主插入的产品。

    【讨论】:

    • 但是我将放置模型的位置。我可以把它放在AdminApp中吗?
    【解决方案2】:

    有几种可能的解决方案:

    1. 您可以创建产品模型的模型(抽象与否,这取决于您是否需要请求数据库中的所有产品)并从中继承以创建具有商店 FK 的 ShopProduct 和具有主持人 FK 的另一个 ModeratorProduct

    2. 您可以在产品模型https://docs.djangoproject.com/en/3.1/ref/contrib/contenttypes/#generic-relations 中使用通用 FK 来提供与 Shop 或 Moderator 的关系

    3. 您可以为您的模型(Shop 和 Moderator)提供两个 FK,并且只为每个产品定义一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-04-26
      • 1970-01-01
      • 2010-12-27
      • 2012-07-27
      • 2021-09-05
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多