1

我是 Python 和 Django 的新手,所以请耐心等待。我试图在一个 base.html 类中包含一个表单部分。这就是我的做法:

视图.py:

class WikiForm(forms.Form):
    original = forms.Textarea()
    wikified = forms.Textarea()
    raw_html = forms.Textarea()

def index(request):
    wikiform = WikiForm()
    template = loader.get_template('base.html', wikiform)
    context = RequestContext(request, {})

    return HttpResponse(template.render(context))

Base.html

<div class="sub-background">
    {% block content %}
       {{ wikiForm }}
    {% endblock %}
</div>

这已经奏效了,只是在尝试添加表单部分后,它才因此错误而失败。

任何帮助深表感谢!

编辑 这是完整的错误:

> C:\Python27\django-trunk\django\core\handlers\base.py in get_response
                    response = wrapped_callback(request, *callback_args, **callback_kwargs) ...
▶ Local vars
E:\Dropbox\University Project\wikify\Wikify_Project\Wikify_Project\views.py in index
    template = loader.get_template('base.html', wikiform) ...
▶ Local vars
C:\Python27\django-trunk\django\template\loader.py in get_template
    template, origin = find_template(template_name, dirs) ...
▶ Local vars
C:\Python27\django-trunk\django\template\loader.py in find_template
    raise TemplateDoesNotExist(name) ...
▶ Local vars

我可以通过不将 wikiform 传递到模板来修复此错误,但是如何将表单传递到模板中以包含在 HTML 中呈现呢?

4

1 回答 1

1

此行不正确:

template = loader.get_template('base.html', wikiform)

根据开发版文档,此方法的结构是这样的:

get_template(template_name[, dirs])

对于 django 1.6 及更早版本,dirs 参数不存在。如果你没有使用 django 的开发版本,那一行应该会给你一些关于只允许一个参数的错误。如果您使用的是 dev 版本,wikiform则不是目录列表,因此这将永远行不通。

如果要将表单传递给模板,则需要执行以下操作:

wikiform = WikiForm()
template = loader.get_template('base.html')
context = RequestContext(request, {'form': wikiform})
于 2013-11-04T00:21:21.327 回答