【问题标题】:Django model datas as preset for creating other model用于创建其他模型的预设 Django 模型数据
【发布时间】:2018-05-05 23:36:56
【问题描述】:

我实际上正在为一家生物技术实验室编写申请。这个想法是用预设的产品列表准备环境。

还需要处理产品的库存。

我尝试了以下结构,但我不知道如何处理预设...

#models.py
class Products(models.Model):
    nutrients = models.CharField(max_length=10)
    globalQuantity = models.FloatField()
    rcvdate = models.DateTimeField()
    user = models.ForeignKey(User, null=True, on_delete=models.SET_NULL)
    lot = models.CharField(max_length=50)

class Environments(models.Model):
    lot = models.CharField(max_length=25, unique=True)
    date = models.DateTimeField()
    user = models.ForeignKey(User, on_delete=models.SET_NULL)
    initvolume = models.FloatField()
    preparation = ?

class Presets(models.Model):
    name = models.CharField(max_length=25)
    product = models.ForeignKey('products', on_delete=models.SET_NULL)
    quantity = models.FloatField()

然后的想法是填充预设,如下所示:

 1. name = preset1 | product = NH4  | quantity = 50
 2. name = preset1 | product = SO4  | quantity = 25
 3. name = preset2 | product = NaCl | quantity = 40
 4. name = preset2 | product = Mn   | quantity = 30

“配方”(如预设 1 和预设 2)包含不同的产品。它必须是动态的,因为用户需要能够根据需要添加“食谱”。

问题是:“如何使用类预设中定义的一个预设向环境添加准备?”

表格的字段是在开始时定义的,那么如何处理可能与预设结构不同的准备工作?

【问题讨论】:

  • 第一个字母应该大写的模型。
  • 感谢您的建议 =)
  • 并注意单数/复数...

标签: python django database django-models foreign-keys


【解决方案1】:

您需要一个额外的模型:Recipe。总是用你也谈论的东西来模拟你的数据库,这让它变得更容易。假设:预设可以被许多配方重用。

def Recipe(models.Model):
    name = models.CharField()
    presets = models.ManyToManyField(Preset)

def Preset(models.Model):
    product = models.ForeignKey(Product)
    quantity = models.FloatField()

def Environment(model.Model):
    etc...
    preparation = ForeignKey(Recipe)

【讨论】:

  • 另一种方法是使用ManyToManythrough 关系,以便environment 链接到presets 通过 recipe。跨度>
  • 我是用 'through' 参数完成的 :) 感谢您的快速回答!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-06-24
  • 2016-06-10
  • 1970-01-01
  • 1970-01-01
  • 2014-07-20
  • 2019-04-15
  • 1970-01-01
相关资源
最近更新 更多