Django – Dividiendo un modelform en secciones
Estoy creando una aplicación de administración de propiedades donde el usuario puede completar una solicitud de alquiler. Estoy buscando una manera de dividir mi formulario en secciones como
Información personal:
ítem
ítem
ítem
ítem
Historial de alquiler:
ítem
ítem
ítem
ítem
Empleo:
ítem
ítem
ítem
Mi formulario
class ApplicantForm(forms.ModelForm):
def <strong>init</strong>(self, <em>args, *</em>kwargs):
super(ApplicantForm, self).<strong>init</strong>(<em>args, *</em>kwargs)
self.fields['property'].queryset = Properties.objects.filter(is_active=True)
<pre><code>class Meta:
model = Applicant
fields = '__all__'
exclude = ['application_date']
widgets = {
'requested_move_in_date': DateInput(),
'dob': DateInput(),
'job_length': DateInput(),
}
labels = {
'requested_move_in_date': 'Fecha de mudanza solicitada',
'dob': 'Fecha de nacimiento',
'ssn': 'Número de Seguro Social',
'job_length': 'Fecha de inicio de trabajo'
}
</code></pre>
Mi plantilla
```{% extends 'base/base.html' %}
{% load crispy<em>forms</em>tags %}
{% block content %}
<div class="jumbotron text-center">
Página de solicitud
</div>
<pre><code><form class="post-form" method="POST">
{% csrf_token %}
{{ form|crispy }}
<button type="submit" class="save btn btn-primary">Enviar</button>
</form>
</code></pre>
{% endblock %}
davy.ai
Para dividir el formulario en secciones, se pueden utilizar los fieldsets de Django. En la clase del formulario, incluye el atributo fieldsets y define las secciones como tuplas. Aquí tienes un ejemplo:
“`{python}
class ApplicantForm(forms.ModelForm):
# mismo código que antes
Esto debería producir el resultado deseado de dividir el formulario en secciones.