1

我正在使用 django-webtest 为我的应用程序创建自动化功能测试。

由于我在一个网页上有多个表单,因此我目前正在使用硬编码索引来选择感兴趣的表单。例如:

    # Forms on this page are: forms[0] = Establishment form,
    # forms[1]= School Form
    school_form = school_page.forms[1]
    school_form['phone'] = self.school_phone_number
    school_form.submit(value='Submit')

我想使用表单 id 而不是硬编码的索引来选择感兴趣的表单,以便代码可维护。但是当我在我的代码中打印 school_form.id 时,该值为无。

模板是:

<form action="" method="post" >
{% csrf_token %}
<p>
    {{ establishment_form|crispy }}
    <br><br>
    {{ school_form|crispy }}
</p>
<button type="submit" class="btn btn-lg btn-primary">Submit</button>

我在 Django 文档中找不到如何将表单 ID(不是表单字段 ID)分配给 ModelForm。有人可以帮我解决这个问题吗?

我正在使用 Django 1.7、django-webtest 1.7.8、WebTest 2.0.18 和 django-crispy-forms 1.4.0。

4

2 回答 2

2

Django 表单不负责输出表单元素本身。所以在表单声明级别没有什么可做的。

您始终可以从视图中传递一个属性并在模板中使用它:

<form id="{{ form_id_from_view }}" action="." method="POST">
于 2015-09-16T09:14:36.747 回答
0

您可以直接将 分配给id模板中的表单元素。

<form id="my_id" name="some_name" action="/my/url/" method="POST">
于 2015-09-16T09:21:18.117 回答