So the code I have:
models.py
class Department(models.Model):
code = models.CharField(max_length=250, unique=True)
code_meaning = models.CharField(max_length=250, )
def __str__(self):
return "%s" % (self.code)
urls.py
path('departments/', DepartmentCreateView.as_view(), name='department'),
department.html
{% extends 'base.html' %} {% block content %}
{% load crispy_forms_tags %}
<div class="content-section">
{{ formset.management_form }}
<form method= "POST">
{% csrf_token %}
{% for form in formset %}
{{ form}}<br><br>
{% endfor %}
<button class="btn btn-outline-info" type="submit">Save</button>
</form>
</div>
{% endblock content%}
views.py
class DepartmentCreateView(CreateView):
model = Department
form_class = DepartmentForm
template_name = 'department.html'
def get_context_data(self, **kwargs):
context = {'formset': DepartmentFormset}
return context
def form_valid(self, formset):
formset.save()
messages.success(self.request,'Changes were saved.')
return HttpResponseRedirect(self.get_success_url())
def get_success_url(self):
return HttpResponseRedirect(reverse('home'))
forms.py
class DepartmentForm(ModelForm):
class Meta:
model = Department
fields = ('code', 'code_meaning',)
DepartmentFormset= modelformset_factory(Department, fields=('__all__'))
My page shows the formset, but when I click on the submit button it just reloads, don't saves anything and the succes message is also not showed on my home page. (My other createviews where I have only one form works prefect)
I very new to django so I don't know where I did something wrong ? Thanks in advance