Python 如何将窗体控件添加到Django窗体?
我正在尝试将表单控件添加到我为Django制作的表单应用程序中。我已经创建了应用程序,并希望将表单添加到引导模板中,但是我不知道如何为我的电子邮件字段添加引导的更光滑的文本框 我想以类似于此引导模板角落中的登录字段的内容结束(尽管没有密码字段): 我的signup.html文件中的代码如下所示:Python 如何将窗体控件添加到Django窗体?,python,django,forms,twitter-bootstrap,Python,Django,Forms,Twitter Bootstrap,我正在尝试将表单控件添加到我为Django制作的表单应用程序中。我已经创建了应用程序,并希望将表单添加到引导模板中,但是我不知道如何为我的电子邮件字段添加引导的更光滑的文本框 我想以类似于此引导模板角落中的登录字段的内容结束(尽管没有密码字段): 我的signup.html文件中的代码如下所示: {% extends 'base.html' %} {% block content %} <div class="col-sm-12"> <for
{% extends 'base.html' %}
{% block content %}
<div class="col-sm-12">
<form method='POST' action=''> {% csrf_token %}
{{ form.as_p }}
<input type='submit' class='btn btn-success btn-lg'>
</form>
</div>
{% endblock %}
def __init__(self, *args, **kwargs):
super(MemberForm, self).__init__(*args, **kwargs)
for field_name, field in self.fields.items():
field.widget.attrs['class'] = 'form-control'
{%extends'base.html%}
{%block content%}
{%csrf_令牌%}
{{form.as_p}}
{%endblock%}
上面引导站点的代码如下所示(为了清楚起见,我去掉了密码部分):我不知道如何将django应用程序集成到代码中,以便该站点将注册信息发布到我的数据库
<form class="navbar-form navbar-right" role="form">
<div class="form-group">
<input type="text" placeholder="Email" class="form-control">
</div>
<button type="submit" class="btn btn-success">Sign in</button>
</form>
登录
如何将两者结合起来?提前感谢。尝试使用应用程序
{%load bootstrap3%}
{%csrf_令牌%}
{%bootstrap_form layout=“inline”%}
{%buttons%}
签名
{%endbuttons%}
希望这能给你正确的方向。您可以尝试应用程序提供的各种参数来适应您的布局。作为参考,例如,如果您使用的是
ModelForm
,您只需覆盖表单的init
方法,如下所示:
{% extends 'base.html' %}
{% block content %}
<div class="col-sm-12">
<form method='POST' action=''> {% csrf_token %}
{{ form.as_p }}
<input type='submit' class='btn btn-success btn-lg'>
</form>
</div>
{% endblock %}
def __init__(self, *args, **kwargs):
super(MemberForm, self).__init__(*args, **kwargs)
for field_name, field in self.fields.items():
field.widget.attrs['class'] = 'form-control'
将类作为属性直接添加到表单字段,对我来说似乎是最枯燥的方式
name = forms.CharField(widget=forms.TextInput(attrs={"class":"form-control"}))
message = forms.CharField(widget=forms.Textarea(attrs={"class":"form-control"}))
这样,您就不需要在其他任何地方编辑任何内容。您可以通过这种方式向特定字段添加任意数量的类
def __init__(self, *args, **kwargs):
super(YourModelForm, self).__init__(*args, **kwargs)
for field_name, field in self.fields.items():
if field.widget.attrs.get('class'):
field.widget.attrs['class'] += ' form-control'
else:
field.widget.attrs['class']='form-control'
不会覆盖给定的类属性可以这样添加表单字段:{{Form.email | add_class:“表单控制”| attr:“占位符:email”| attr:“type:text”}代替{{Form.as|p}小心,因为这会覆盖任何给定的类属性!