Удаление меток из динамического набора форм django crispy
У меня есть динамический набор форм, позволяющий пользователям добавлять переменное количество записей. Это реализовано с помощью https://github.com/elo80ka/django-dynamic-formset, и описано ниже
В настоящее время отображается как:
А когда пользователь добавляет еще одну строку как:
Однако я бы хотел, чтобы метки были либо 1. полностью удалены, либо 2. присутствовали только в первой строке, либо 3. находились внутри поля ввода, а не над ним?
models.py
class Patient(TimeStampedModel):
# get a unique id for each patient - could perhaps use this as slug if needed
patient_id = models.UUIDField(primary_key=True, unique=True, default=uuid.uuid4, editable=False)
class PastMed(TimeStampedModel):
medication = models.CharField(
“Medication”, max_length=20, default=‘unspecified’)
dose = models.IntegerField("Dose (mg)", default=0)
patient = models.ForeignKey(Patient, on_delete=models.CASCADE)
forms.py
PastmedFormSet = inlineformset_factory(
Patient, PastMed, fields=(“medication”, “dose”), extra=1)
views.py
class PatientAddView(LoginRequiredMixin,TemplateView):
model = Patient
template_name = "../templates/add.html"
def get(self, *args, **kwargs):
pastmed_formset = PastmedFormSet(queryset=PastMed.objects.none())
return self.render_to_response({'pastmed_formset': pastmed_formset})
add.html
<script type="text/javascript" src="{% static 'js/jquery/dist/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'js/jquery.formset.js' %}"></script>
<script type="text/javascript">
$(function() {
$('#pastmeds_table tbody tr').formset({
prefix: 'pastmed_set'
})
});
</script>
<div class="form-group">
<table id="pastmeds_table" border="0" cellpadding="0" cellspacing="5">
<tbody>
{% for form in pastmed_formset %}
<tr id="{{ form.prefix }}-row"></tr>
<td>
{% for fld in form.hidden_fields %}{{ fld }}{% endfor %}
{% if form.instance.pk %}{{ form.DELETE }}{% endif %}
<div class="row">
<div class="col-3">
{{ medication|as_crispy_field}}
</div>
<div class="col-3">
{{ form.dose|as_crispy_field }}
</div>
</div>
</td>
</tr>
{% endfor %}
</tbody>
</table>
</div>