У меня есть две модели, связанные внешним ключом.Я пытаюсь добавить логику в поле формы в представлении создания, где пользователь заполняет число n и генерирует n элементов в базе данных.
Model.py
class Environment(models.Model):
name = models.CharField(max_length=50)
class Item(models.Model):
environment = models.ForeignKey(Environment, on_delete=models.CASCADE)
uid = models.CharField(max_length=50, unique=True, null=True, blank=True)
def __init__(self):
super(Item, self).__init__()
self.uid = str(uuid.uuid4())
view.py
class EnvironmentCreateView(CreateView):
'''View for creating Environments'''
model = Environment
form_class = EnvironmentCreateForm
template_name = 'Environment_create.html'
success_url = reverse_lazy('main:Environment list')
forms.py
Если поле items
заполнено пользователем, онодолжен сгенерировать n элементов в базе данных.У текущего подхода, который я выбрал, есть проблема, перекрывающая функцию сохранения.Не совсем уверен, нужно ли мне использовать inline_formeset
class EnvironmentCreateForm(forms.ModelForm):
name =forms.CharField(max_length=50, required=True, label='Product Name')
items =forms.IntegerField(min_value =0, max_value = 100,required=False, label='Number of Items')
class Meta:
model = Environment
fields = ['name',]
def save(self):
if Environment.is_valid():
Environment.save()
if self.items >= 0:
for i in range(self.items):
Item.objects.create(Environment, uid =str(uuid.uuid4()) )