Мне нужно создавать формы в следующем порядке:
1. Создать название формы (generator)
2. Создать шаги заполнения формы
3. И к этим шагам добавить поля Чтобы потом использовать эти формы для заполнения на сайте.
Как можно реализовать этот функционал?
from django.db import models
from enum import Enum
class Generator(models.Model):
name = models.CharField(max_length=255, verbose_name='Название')
url = models.URLField(verbose_name='Сссылка для запросов')
cost = models.DecimalField(max_digits=7, decimal_places=2, null=True)
def __str__(self):
return self.name
class Step(models.Model):
generator = models.ForeignKey(Generator, on_delete=models.CASCADE, related_name='steps', verbose_name='Генератор')
name = models.CharField(max_length=255, verbose_name='Название')
def __str__(self):
return f'{self.generator} - {self.name}'
class FieldChoices(Enum):
text = 'text'
email = 'email'
tel = 'tel'
url = 'url'
password = 'password'
number = 'number'
search = 'search'
date = 'date'
time = 'time'
range = 'range'
radio = 'radio'
checkbox = 'checkbox'
color = 'color'
file = 'file'
hidden = 'hidden'
class Field(models.Model):
step = models.ForeignKey(Step, on_delete=models.CASCADE, related_name='fields', verbose_name='Шаг')
name = models.CharField(max_length=255, verbose_name='Название')
type = models.CharField(max_length=255, choices=((choice.name, choice.value) for choice in FieldChoices))
def __str__(self):
return f'{self.step} - {self.name} {self.type}'