Python,Django:编辑 inlineformset_factory

Python, Django: Editing inlineformset_factory

在我的应用程序中,我正在使用 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>

您必须为每个字段执行此操作

#变化

 <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的影响。
使用F12查看chrome中的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>