如何使用带有不同标签的Django Formsets?

时间:2019-01-13 12:41:59

标签: python django python-3.x django-forms django-views

如何为Django表单集创建不同的标签?我在用表单Charfield创建的html页面上有输入字段,并且每次输入字段的数量根据我的列表而不同。我想每次显示输入内容时都使用不同的标签或标题吗?

edit_files.html

{

    % block content %}

    <form action="." method="POST">{% csrf_token %}

            {{ form.management_form }}

            {% for each_f in form %}

                <br/>{{ each_f.as_p }}   {{ 1|add:1}}

            {% endfor %}

        <input type="submit" value="Save" name="lines" />
    </form>

    {% endblock %}

forms.py

from django import forms
from .models import DocFile

class DocumentForm(forms.ModelForm):
    class Meta:
        model = DocFile
        fields = ('description','document')


class RawProductionForm(forms.Form):
    title_forms = forms.CharField(label='')

views.py

def edit_files(request, file_id):
    instance = get_object_or_404(DocFile, id=file_id) # finding variables in the doc
    exact_file = Document(instance.document)
    variables = []
    for paragraph in exact_file.paragraphs:
        match = re.findall(r"\{(.*?)\}", paragraph.text)
        variables.append(match)
    for table in exact_file.tables:
        for row in table.rows:
            for cell in row.cells:
                match = re.findall(r"\{(.*?)\}", cell.text)
                variables.append(match)

    exact_file.save('green.pdf')
    temporary_list = []  # as with a Paragraph code we get lists of list , and have multiple little lists we get rid of empty lists
    for i in variables:
        for j in i :
            if len(j) > 0:
                temporary_list.append(j)
    variables = temporary_list

    inputs_amount = len(variables)  #getting length of list for   Formsets amount
    print(variables)

    my_form = formset_factory(RawProductionForm, extra=inputs_amount, )  #creating forms
    inputs_list = []     # getting data out of inputs and filling in a list
    if request.method== "POST":
        my_form = my_form(request.POST)
        if my_form.is_valid():
            for i in my_form.cleaned_data:
                inputs_list.append(i.get('title_forms'))
            print(inputs_list)
        else:
            print(my_form.errors)
    context = {
        "form": my_form
    }
    return render(request, 'edit_files.html', {'variables': variables, "form": my_form })

0 个答案:

没有答案