1

我一定只是在这里忽略了一些东西,但是在剥离所有内容之后 - 我似乎无法让 Django 将 Form 或 ModelForm 呈现给我的模板。下面的代码:

#forms.py
class ContactForm(forms.Form):
   subject = forms.CharField(max_length=100)
   message = forms.CharField()
   sender = forms.EmailField()
   cc_myself = forms.BooleanField(required=False)

#views.py
def index(request):
    if request.method == 'POST':
        form = ContactForm(request.POST)
        if form.is_valid(): # All validation rules pass
            return HttpResponseRedirect('/thanks/')
    else:
        form = ContactForm() # An unbound form
    return render_to_response('home/new_website.html',{
        'form': form,
        })

#new_website_html
<html>
<body>
    <form method = "post" action = "">
        {{ form.as_p }}
    </form>
</body>
</html>
4

2 回答 2

1

我遇到了同样的问题,经过多次尝试,这是我的解决方案:

从此改变观点

#views.py
else:
    form = ContactForm() # An unbound form
return render_to_response('home/new_website.html',{
    'form': form,
    })

对此:

#views.py
else:
    form = ContactForm() # An unbound form
    return render_to_response('home/new_website.html',{
        'form': form,
        })

或者一个简单的换行符就足够了:

#views.py
else:
    form = ContactForm() # An unbound form

return render_to_response('home/new_website.html',{
    'form': form,
    })

奇怪的是,在这些更改之后,原始代码起作用了。

于 2015-11-05T01:47:30.570 回答
0

任何错误页面或只是空白页面?实际上,我只是尝试您的代码并获得正确的表单渲染(我不知道如何在此处插入本地结果图像)请确保在 settings.py 中 DEBUG=TRUE,而这不是问题。@Burhan我认为缩进问题只会发生,因为他在stackoverflow中对其进行了编辑。顺便说一句,您的表单没有提交按钮,也许将其添加到 html 中

于 2013-09-04T09:04:32.363 回答