django_mycelium/mycelium/models.py

57 lines
1.7 KiB
Python

from django.db import models
# Create your models here.
from translatable_fields.models import TranslatableField
class Species(models.Model):
name = TranslatableField()
scientific_name = models.CharField(max_length=255)
genera = models.CharField(max_length=255)
familia = models.CharField(max_length=255)
ordo = models.CharField(max_length=255)
classis = models.CharField(max_length=255)
class Ingredient(models.Model):
name = TranslatableField()
description = TranslatableField()
image = models.ImageField(null=True)
class Substrate(models.Model):
name = TranslatableField()
class IngredientInSubstrate(models.Model):
amount = models.FloatField()
substrate = models.ForeignKey(Substrate, on_delete=models.CASCADE)
ingredient = models.ForeignKey(Ingredient, on_delete=models.CASCADE)
class Step(models.Model):
name = TranslatableField()
description = TranslatableField()
class CultureType(models.Model):
name = TranslatableField()
description = TranslatableField()
image = models.ImageField(null=True)
class Culture(models.Model):
substrate = models.ForeignKey(Substrate, null=True, on_delete=models.SET_NULL)
species = models.ForeignKey(Species, null=True, on_delete=models.SET_NULL)
culture_type = models.ForeignKey(CultureType, null=True, on_delete=models.SET_NULL)
steps = models.ManyToManyField(
Step, through="CultureStep", through_fields=("culture_id", "step_id")
)
class CultureStep(models.Model):
culture_id = models.ForeignKey(Culture, on_delete=models.CASCADE)
step_id = models.ForeignKey(Step, on_delete=models.CASCADE)
date = models.DateTimeField()
notes = TranslatableField()