Создание формы добавление множества записей в Django
Есть две модели:
class Category(models.Model):
name = models.CharField(max_length=50)
....
class Person(models.Model):
name = models.CharField(max_length=10)
category = ForeignKey(Person, on_delete=models.CASCADE)
...
я хочу, чтобы при помощи формы можно было добавить сразу несколько человек. Попробовала так: forms.py
class categoryForm(ModelForm):
class Meta:
model = Category
fields = ('name',)
class personForm(ModelForm):
class Meta:
model = Person
fields = ('name',)
class personFormTwo(ModelForm):
class Meta:
model = Person
fields = ('name',)
views.py
if request.method == 'POST':
form_category = categoryForm(request.POST)
form_person = personForm(request.POST)
form_person_two = personFormTwo(request.POST)
if form_category.is_valid() and form_person.is_valid() and form_person_two.is_valid():
cat = form_category.save()
catTwo = form_category.save()
form_person.save(commit=False)
form_person_two.save(commit=False)
form_person.id_category = cat
form_person_two.id_category = catTwo
form_person.save()
form_person_two.save()
html
<form method='POST'>
{% csrf_token %}
{{ categoryForm.as_p }}
{{ personForm.as_p }}
{{ personFormTwo.as_p }}
</form>
Но так, на странице появляются совершенно одинаковые две формы с одинаковыми id у input`ов, что не есть хорошо
И при print(personForm.cleaned_data) Выводятся пустые значения, кроме числовых полей там Null
Как реализовать?
Чтобы не плодить еще один вопрос и чтобы еще больше не испытывать стыд, Второй вопрос, если можно...
Есть модель:
class system(models.Model):
status = models.CharField(max_length=30)
....
Возможно ли изменить значение поле статуса, при сохранение формы из первого вопроса и как это сделать?
Заранее спасибо. Буду ждать подсказок