相关疑难解决方法(0)

动态地向表单添加字段

我的表格中有3个字段.我有一个提交按钮和一个"添加额外字段"按钮.我知道我可以__init__在表单类中使用方法添加字段.

我是Python和Django的新手,我遇到了一个初学者问题:我的问题是:

当我单击"添加附加字段"按钮时,添加附加字段的过程是什么?

表格是否必须再次呈现?

我怎么以及何时打电话__init__或者甚至不得不打电话给它?

我如何传递参数__init__

python django django-forms

56
推荐指数
2
解决办法
6万
查看次数

动态地(并且干净地)向Django表单添加字段

嘿伙计们,我知道这个问题已经提出了很多次,但我还没有完全实现.正如您在下面看到的,我有一个表单,我可以动态地告诉您要创建多少行.如何创建"添加行"链接,告诉视图要创建多少行?我真的很想在不增加网址的情况下做到这一点......

# views.py
def myView(request):
    if request.method == "POST": 
        form = MyForm(request.POST, num_rows=1)

        if form.is_valid():
            return render_to_response('myform_result.html', context_instance=RequestContext(request))
    else:
        form = MyForm(num_rows=1)

    return render_to_response('myform.html', {'form':form}, context_instance=RequestContext(request))


# forms.py
class MyForm(forms.Form):
    def __init__(self, *args, **kwargs):
        num_rows = kwargs.pop('num_rows',1)
        super(MyForm, self).__init__(*args, **kwargs)

        for row in range(0, num_rows):
            field = forms.CharField(label="Row")
            self.fields[str(row)] = field


# myform.html  http://example.com/myform
<form action="." method="POST" accept-charset="utf-8">
    <ul>
        {% for field in form %}
            <li style="margin-top:.25em">
                <span class="normal">{{ field.label }}</span> 
                {{ field }}
                <span class="formError">{{ field.errors }}</span> …
Run Code Online (Sandbox Code Playgroud)

forms django dynamic

2
推荐指数
1
解决办法
4731
查看次数

标签 统计

django ×2

django-forms ×1

dynamic ×1

forms ×1

python ×1