我实际上正在为BioTech实验室编写申请表。我们的想法是准备具有预设产品列表的环境。
还需要处理产品库存。
我尝试了以下结构,但我不知道如何处理预设......
#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
"配方" (如preset1和preset2)包含不同的产品。它必须是动态的,因为用户需要能够添加"食谱"如果他们想要的话。
问题是:"如何使用类预设中定义的一个预设将准备添加到环境中? "
表格的字段是在开头定义的,那么如何根据预设结构处理不同的准备工作?
答案 0 :(得分:0)
您需要一个额外的模型: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)