【问题标题】:Posting a form back with it's default values in the Django TestClient在 Django TestClient 中使用默认值发回表单
【发布时间】:2011-11-19 17:23:02
【问题描述】:

我正在为 Django 中的某些表单编写一些测试。这些表单经常更改,因此我试图避免将表单参数硬编码到我的测试中,因为每次我的表单更改时,我也必须修改测试。我有很多这种性质的形式。我主要是测试信息是否正确存储在正确的表中,而无需真正关心每个表单字段。

使用 Django TestClient,有没有一种方法可以获取包含表单的页面,然后使用提交的默认表单字段值将其发回?

我已经在 Google 上搜索过,但无济于事。

有帮助吗?谢谢。

【问题讨论】:

    标签: python django django-forms django-testing


    【解决方案1】:

    我以前不得不做这样的事情,不幸的是没有简单的方法可以做到。我能想到的最好的办法是渲染表单,然后用 BeautifulSoup 解析结果以获取输入和选择的所有值。比如:

    from BeautifulSoup import BeautifulSoup
    myform = MyForm()
    rendered_form = myform.as_p()
    soup = BeautifulSoup(rendered_form)
    values = {}
    for input in soup.findAll('input'):
        value = input.get('value')
        if value:
            values[input['name']] = value
    for select in soup.findAll('select'):
        selected = select.find(selected='selected')
        if selected:
            values[select['name']] = selected['value']
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-10
      • 2021-12-05
      • 2011-11-03
      • 1970-01-01
      相关资源
      最近更新 更多