如何将表单控件添加到Django表单?

use*_*538 3 python forms django twitter-bootstrap

我试着将表单控件添加到我为Django制作的表单应用程序中.我已经创建了应用程序,并希望将表单添加到引导程序模板中,但是我不知道如何为我的电子邮件字段添加bootstrap的更时尚的文本框.

我想最终得到像这个引导程序模板一角的登录字段(尽管没有密码字段):http: //getbootstrap.com/examples/jumbotron/

我的signup.html文件中的代码如下所示:

{% 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 %}
Run Code Online (Sandbox Code Playgroud)

上面的bootstrap站点的代码看起来像这样(为了清楚起见,我删除了密码部分):我不知道如何将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>
Run Code Online (Sandbox Code Playgroud)

我如何整合这两个?提前致谢.

Mil*_*dek 8

作为参考,如果你是例如使用a,ModelForm你可以init像这样覆盖表单的方法:

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'
Run Code Online (Sandbox Code Playgroud)

  • 小心,因为这会覆盖任何给定的类属性! (3认同)

小智 7

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'
Run Code Online (Sandbox Code Playgroud)

不会覆盖给定的类属性


Hus*_*ala 1

尝试使用django-bootstrap3应用程序。

{% load bootstrap3 %}

<form method="post" action="" >
    {% csrf_token %}
      {% bootstrap_form form layout="inline" %}
    {% buttons%}
    <button type="submit" class="btn btn-sucess"> Signin </button>
    {% endbuttons %}
  </form>
Run Code Online (Sandbox Code Playgroud)

希望这给你正确的方向。您可以尝试应用程序提供的各种参数来适合您的布局。