问题描述
在我的应用程序中,我使用的是 inlineformset_factory 并且知道它工作正常!但是当在我的模板中显示它时,标签总是停留在输入字段的正上方。有没有办法将它们并排显示,甚至将标签移动为输入字段内的某种占位符?
views.py
formset = inlineformset_factory(Model_A,Model_B,can_delete=False,extra=0,fields=('fields_01','fields_02','fields_03'))
template.html
<form method="post">
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
{{ form }}
{% endfor %}
<button type="submit">Save</button>
</form>
感谢您的帮助,祝您周末愉快!
解决方法
试试这个:
<form action="" method="POST">
{% csrf_token %}
{{ form.management_form }}
{% for field in form %}
{{field.product.label}} - {{field.product}} #here product is my field name
<hr>
{% endfor %}
<input type="submit" name="Submit">
</form>
你必须对每个字段都这样做
#Changes
<form method="post">
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
{{ form.Field_name.label }} - {{form.Field_name}} #1st field
{{ form.Field_name.label }} - {{form.Field_name}} #2nd field
{% endfor %}
<button type="submit">Save</button>
</form>
,
我认为显示是受css影响的。
在chrome中使用F12查看css查找原因。
您可以编辑 css 以更改显示。
或者使用 django-widgets-improved 和 bootstrap 将 class 设置为表单的字段。
{% load widget_tweaks %}
<form method="post">
{% csrf_token %}
{{ formset.management_form }}
{% for form in formset %}
{% for field in form %}
{% render_field field class="form-control" %}
{% endfor %}
{% endfor %}
<button type="submit">Save</button>
</form>