Formset не создает объект в базе данных
У меня есть такая модель "Получатель":
# Models.py
class Recipient(models.Model):
Account = models.ForeignKey(settings.AUTH_USER_MODEL,
on_delete=models.CASCADE,)
First_name = models.CharField(max_length=100)
Last_name = models.CharField(max_length=100)
Email = models.EmailField(_('email address'), unique=True)
Permitted = models.BooleanField(default=False)
def __str__(self):
return self.Email
А эта форма,
# Forms.py
class AddRecipientForm(forms.ModelForm):
First_name = forms.CharField(required=True, label = 'First_name', widget = forms.TextInput())
Last_name = forms.CharField(required=True, label = 'Last_name', widget = forms.TextInput())
Email = forms.EmailField(required=True,label = 'Email_address', validators=[validators.EmailValidator()], widget=forms.TextInput())
Permitted = forms.BooleanField(required=False, widget=forms.CheckboxInput())
class Meta():
model = Recipient
fields = ('First_name', 'Last_name', 'Email', 'Permitted')
Я попытался создать Generic FormView, где пользователи могут добавлять несколько экземпляров получателей с помощью наборов форм, как показано ниже
# Views.py
class AddRecipients(LoginRequiredMixin, FormView):
context_object_name = 'AddRecipient'
template_name = 'Awareness/CyberAwarenessRecipients.html'
form_class = AddRecipientForm
success_url = reverse_lazy('Awareness:AwarenessHome')
Recipient_FormSet = formset_factory(AddRecipientForm,
min_num = 1, max_num=100)
formset = Recipient_FormSet()
def form_valid(self, form):
for recipient in self.formset:
if recipient.is_valid():
recipient.save()
return super().form_valid(form)
def get_context_data(self, *args, **kwargs):
context = super().get_context_data(*args, **kwargs)
context['formset'] = self.formset
return context
Но когда я проверяю страницу администратора django, FormView не фиксирует получателей в БД и не перенаправляет меня на success_url после отправки.