2013-11-03 13 views
1

我是新來的Python和Django,所以忍受着我。我試圖在一個base.html類中包含一個表單部分。 這就是我已經做到了:如何鏈接Django模板中的表單?

Views.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?

+1

你在哪裏把'base.html'? – aIKid

+0

這不是錯誤,因爲最後一行說確實找到了模板。請發佈完整的信息。 –

+0

我編輯了原文,但我不確定我是否在正確的地方看。我知道這與我嘗試添加表單的方式有關。 – liloka

回答

1

這條線是不正確的:

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

根據開發版本的文檔,該方法的結構是這樣的:

get_template(template_name[, dirs]) 

Django的1.6和更早的版本,迪爾斯參數不存在。如果你不使用django的開發版本,該行應該給你一些關於只允許一個參數的錯誤。如果你使用的是dev版本,wikiform不是目錄列表,所以這將永遠不會工作。

如果你想的形式傳遞給模板,你需要這樣做:

wikiform = WikiForm() 
template = loader.get_template('base.html') 
context = RequestContext(request, {'form': wikiform}) 
+0

謝謝!我有一些工作,但我的修復意味着它抱怨我的CSS和js被髮送爲純文本。你已經修正了一個錯誤。謝謝!!! – liloka