如何为django表单自定义html

时间:2014-07-07 08:10:14

标签: javascript jquery html css django

我正在为我的网站使用html模板,并希望收集信息到我的django后端。具体来说,我想从代码的这一部分返回电子邮件地址的值

<input type="text" placeholder="Email" value="" style="height: 30px; width: 250px; border: 2px solid grey; padding: 7px; margin-top: 10px; margin-bottom: 10px; font-size: 20px;">

如果我将{{%form.email%}}放入value="",它会在框内写<input id=,并在框外写">

如果我将{{%form.email%}置于html代码的这一部分后面,它将生成另一个框。但我只想用这个盒子。

我该怎么做?

1 个答案:

答案 0 :(得分:0)

通常您希望使用Django-Form类生成字段。在那里,您还可以自定义整个字段:对于您的示例,您必须在forms.py

中创建这样的类。
class EmailForm(forms.Form)
    email  = forms.CharField(widget=forms.EmailInput(attrs={'class': 'email-input',
                                                            'placeholder': 'Email'})

您也可以使用

{'style': 'height: 30px; width: 250px; border: 2px solid grey; padding: 7px; margin-top: 10px; margin-bottom: 10px; font-size: 20px;'}

而不是{'class': 'email-input'}代表你的风格,但通常最好使用css类。

您班级中的email基本上是您的整个电子邮件字段,但它会自动生成名称和ID,因此更容易使用。

现在,如果你想要后端的字段值,你必须做一个GET或POST请求(我认为在这种情况下是POST)。您将通过在要处理收到的数据的方法中使用以下模式来获取值:(工作但不是最佳)field_value = request.POST.get('fieldname')甚至更好,正如Daniel在field_value = form.cleaned_data['fieldname']的评论中指出的那样。

所以在你的情况下,它会是这样的:email = form.cleaned_data['email']。这将返回键入字段的值,以供以后使用。