【问题标题】:Is making a different models for different categories is good, Django?为不同的类别制作不同的模型很好,Django?
【发布时间】:2021-06-25 03:34:03
【问题描述】:

我正在做一个提供服务的网站

我应该为不同类型的可用服务创建不同的模型吗?

类服务: 姓名: 说明:

一流的酒店服务: 服务=外国(服务) 报到 结帐

类送货服务: 地点 来自:

像这样???

【问题讨论】:

    标签: django django-models orm


    【解决方案1】:

    在这种情况下,每当您需要新服务时,您都必须在项目中创建新模型,这可不好!

    相反,您可以制作两个模型ServiceAttribute

    class Service(models.Model):
        name = models.CharField(max_length=200)
        description = models.TextField()
    
    class Attribute(models.Model):
        service = models.ForeignKey(Service, on_delete=models.CASCADE)
        name = models.CharField(max_length=200)
        value = models.TextField()
        value_type = models.CharField(max_length=100, choices=[])  # choices will be like string, boolean, date etc.
    

    所以当你需要一个新服务时,创建一个服务模型对象,如hotel service,然后为该服务创建相关属性,如check_incheck_out 等。你需要根据值强制转换属性值输入。

    在这种方法中,您不再需要更改代码库来创建新服务。

    您还可以将attribute.name 设为AttributeName 模型的外键,以切断名称冗余。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-10-25
      • 2014-04-11
      • 2021-01-28
      • 1970-01-01
      相关资源
      最近更新 更多