<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">


<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    
    <title>Frequently Asked Questions &mdash; django-crispy-forms 1.0.0 documentation</title>
    
    <link rel="stylesheet" href="_static/flasky.css" type="text/css" />
    <link rel="stylesheet" href="_static/pygments.css" type="text/css" />
    
    <script type="text/javascript">
      var DOCUMENTATION_OPTIONS = {
        URL_ROOT:    './',
        VERSION:     '1.0.0',
        COLLAPSE_INDEX: false,
        FILE_SUFFIX: '.html',
        HAS_SOURCE:  true
      };
    </script>
    <script type="text/javascript" src="_static/jquery.js"></script>
    <script type="text/javascript" src="_static/underscore.js"></script>
    <script type="text/javascript" src="_static/doctools.js"></script>
    <link rel="top" title="django-crispy-forms 1.0.0 documentation" href="index.html" />
    <link rel="next" title="API helpers" href="api_helpers.html" />
    <link rel="prev" title="Updating layouts on the go" href="dynamic_layouts.html" />
   
  
  <link media="only screen and (max-device-width: 480px)" href="_static/small_flask.css" type= "text/css" rel="stylesheet" />

  </head>
  <body>
    <div class="related">
      <h3>Navigation</h3>
      <ul>
        <li class="right" style="margin-right: 10px">
          <a href="genindex.html" title="General Index"
             accesskey="I">index</a></li>
        <li class="right" >
          <a href="py-modindex.html" title="Python Module Index"
             >modules</a> |</li>
        <li class="right" >
          <a href="api_helpers.html" title="API helpers"
             accesskey="N">next</a> |</li>
        <li class="right" >
          <a href="dynamic_layouts.html" title="Updating layouts on the go"
             accesskey="P">previous</a> |</li>
        <li><a href="index.html">django-crispy-forms 1.0.0 documentation</a> &raquo;</li> 
      </ul>
    </div>  

    <div class="document">
      <div class="documentwrapper">
        <div class="bodywrapper">
          <div class="body">
            
  <div class="section" id="frequently-asked-questions">
<span id="faq"></span><h1>Frequently Asked Questions<a class="headerlink" href="#frequently-asked-questions" title="Permalink to this headline">¶</a></h1>
<div class="contents local topic" id="contents">
<ul class="simple">
<li><a class="reference internal" href="#technical" id="id1">Technical</a><ul>
<li><a class="reference internal" href="#displaying-columns-in-a-boostrap-layout" id="id2">Displaying columns in a boostrap Layout</a></li>
</ul>
</li>
<li><a class="reference internal" href="#general" id="id3">General</a><ul>
<li><a class="reference internal" href="#why-use-django-crispy-forms-and-not-other-app" id="id4">Why use django-crispy-forms and not other app</a></li>
<li><a class="reference internal" href="#how-did-this-all-get-started" id="id5">How did this all get started?</a></li>
<li><a class="reference internal" href="#how-fast-is-django-crispy-forms" id="id6">How fast is django-crispy-forms</a></li>
<li><a class="reference internal" href="#which-versions-of-python-does-this-support" id="id7">Which versions of Python does this support?</a></li>
<li><a class="reference internal" href="#which-versions-of-django-does-this-support" id="id8">Which versions of Django does this support?</a></li>
</ul>
</li>
</ul>
</div>
<div class="section" id="technical">
<span id="faq-technical"></span><h2><a class="toc-backref" href="#id1">Technical</a><a class="headerlink" href="#technical" title="Permalink to this headline">¶</a></h2>
<div class="section" id="displaying-columns-in-a-boostrap-layout">
<span id="faq-columns"></span><h3><a class="toc-backref" href="#id2">Displaying columns in a boostrap Layout</a><a class="headerlink" href="#displaying-columns-in-a-boostrap-layout" title="Permalink to this headline">¶</a></h3>
<p>Of course you can display form fields within columns, the same way you would do it in a standard bootstrap form, you can do it in a bootstrap layout, see an <a class="reference external" href="http://stackoverflow.com/questions/12144475/displaying-multiple-rows-and-columns-in-django-crispy-forms">example</a>.</p>
</div>
</div>
<div class="section" id="general">
<span id="faq-general"></span><h2><a class="toc-backref" href="#id3">General</a><a class="headerlink" href="#general" title="Permalink to this headline">¶</a></h2>
<div class="section" id="why-use-django-crispy-forms-and-not-other-app">
<span id="faq-why-use-it"></span><h3><a class="toc-backref" href="#id4">Why use django-crispy-forms and not other app</a><a class="headerlink" href="#why-use-django-crispy-forms-and-not-other-app" title="Permalink to this headline">¶</a></h3>
<p>Well, I&#8217;m obviously biased for answering this question. But I once <a class="reference external" href="http://stackoverflow.com/questions/11749860/how-to-render-django-forms-choicefield-as-twitter-bootstrap-dropdown">answered it at StackOverflow</a>.</p>
</div>
<div class="section" id="how-did-this-all-get-started">
<span id="faq-when-started"></span><h3><a class="toc-backref" href="#id5">How did this all get started?</a><a class="headerlink" href="#how-did-this-all-get-started" title="Permalink to this headline">¶</a></h3>
<p>In December 2008, while <a class="reference external" href="http://twitter.com/pydanny">Daniel Greenfeld</a> was working for <a class="reference external" href="http://science.nasa.gov">NASA&#8217;s Science Mission Directorate</a>, his team began to use <a class="reference external" href="http://djangoproject.com">Django</a> and <a class="reference external" href="http://pinaxproject.com">Pinax</a>. There was a necessity to make all the forms in Pinax <a class="reference external" href="http://en.wikipedia.org/wiki/Section_508">Section 508</a> compatible, and the thought of going through all of forms and rewriting <tt class="docutils literal"><span class="pre">{{</span> <span class="pre">form</span> <span class="pre">}}</span></tt> as a block of <tt class="docutils literal"><span class="pre">{%</span> <span class="pre">for</span> <span class="pre">field</span> <span class="pre">in</span> <span class="pre">form</span> <span class="pre">%}</span></tt> with all the template logic seemed like way too much work.</p>
<p>So with the encouragement of <a class="reference external" href="http://twitter.com/kcunning">Katie Cunningham</a>, <a class="reference external" href="http://jtauber.com/">James Tauber</a> and <a class="reference external" href="http://twitter.com/jezdez">Jannis Leidel</a> Daniel took the Django docs on forms and combined it with Dragan Babic&#8217;s excellent Uni-Form css/javascript library and created the ubiquitous <tt class="docutils literal"><span class="pre">as_uni_form</span></tt> filter. After that, fixing all the forms in Pinax to be section 508 compliant was trivial.</p>
<p>Not long before PyCon 2009 James Tauber suggested the <tt class="docutils literal"><span class="pre">{%</span> <span class="pre">uni_form</span> <span class="pre">form</span> <span class="pre">helper</span> <span class="pre">%}</span></tt> API, where one could trivially create forms without writing any HTML.</p>
<p>At PyCon 2009 Jannis Leidel helped Daniel through releasing the 0.3 release of django-uni-form on PyPI. It was also at that PyCon when the project moved from Google Code to Github.</p>
<p>Around January 2011 the project wasn&#8217;t very active, Github issues and forks were stacking up. At that time <a class="reference external" href="http://twitter.com/maraujop">Miguel Araujo</a> found django-uni-form and loved the concept behind its architecture. He started working in a fork of the project, trying to gather some old submitted patches. Around march of 2011, after conversations with Daniel, he got commit powers in the project&#8217;s repository, reactivating dev branch. Releases 0.8.0, 0.9.0 followed and the project more than doubled its watchers in Github.</p>
<p>By the end of 2011, Miguel and Daniel agreed on the necessity of renaming the project. As uni-form CSS framework was not anymore the only option available and the name was confusing the users. Thus django-crispy-forms was borned, named by <a class="reference external" href="http://twitter.com/audreyr">Audrey Roy</a>. The project is now actively maintained and leaded by <a class="reference external" href="http://twitter.com/maraujop">Miguel Araujo</a>.</p>
</div>
<div class="section" id="how-fast-is-django-crispy-forms">
<span id="faq-how-fast"></span><h3><a class="toc-backref" href="#id6">How fast is django-crispy-forms</a><a class="headerlink" href="#how-fast-is-django-crispy-forms" title="Permalink to this headline">¶</a></h3>
<p>Performance in form rendering is normally a nigh moot issue in Django, because the majority of speed issues are fixable via appropriate use of Django&#8217;s cache engine. Templates and especially form rendering are usually the last things to worry about when you try to increase performance.</p>
<p>However, because we do care about producing lean and fast code, work is being done to speed up and measure performance of this library. These are the average times of rendering 1000 forms with the latest django-crispy-forms code in Dell Latitude E6500 Intel Core 2 Duo &#64; 2.53GHz.</p>
<p>In production environments, you will want to activate template caching, see <a class="reference internal" href="install.html#install"><em>Installing django-crispy-forms</em></a>.</p>
<table border="1" class="docutils">
<colgroup>
<col width="59%" />
<col width="41%" />
</colgroup>
<thead valign="bottom">
<tr class="row-odd"><th class="head">Method</th>
<th class="head">Time with template caching</th>
</tr>
</thead>
<tbody valign="top">
<tr class="row-even"><td>Plain Django</td>
<td>0.915469169617 sec</td>
</tr>
<tr class="row-odd"><td><tt class="docutils literal"><span class="pre">|crispy</span></tt> filter</td>
<td>4.23220916295 sec</td>
</tr>
<tr class="row-even"><td><tt class="docutils literal"><span class="pre">{%</span> <span class="pre">crispy</span> <span class="pre">%}</span></tt> tag</td>
<td>4.53284406662 sec</td>
</tr>
</tbody>
</table>
</div>
<div class="section" id="which-versions-of-python-does-this-support">
<span id="faq-python-versions"></span><h3><a class="toc-backref" href="#id7">Which versions of Python does this support?</a><a class="headerlink" href="#which-versions-of-python-does-this-support" title="Permalink to this headline">¶</a></h3>
<p>Versions supported include Python 2.6.x, 2.7.x, Python 3.3.x. If you need greater backwards compatibility, django-crispy-forms below 1.3 supports 2.5.x, and django-uni-form 0.7.0 supports Python 2.4.x.</p>
</div>
<div class="section" id="which-versions-of-django-does-this-support">
<span id="faq-django-versions"></span><h3><a class="toc-backref" href="#id8">Which versions of Django does this support?</a><a class="headerlink" href="#which-versions-of-django-does-this-support" title="Permalink to this headline">¶</a></h3>
<p>Versions supported include Django 1.3 or higher. Versions of django-crispy-forms below 1.3 support Django 1.2.x. If you need to support earlier versions you will need to use django-uni-form 0.7.0.</p>
</div>
</div>
</div>


          </div>
        </div>
      </div>
      <div class="sphinxsidebar">
        <div class="sphinxsidebarwrapper"><h3 style="font-size: 30px;"><a href="index.html">crispy-forms</a></h3>
<p>
  <iframe src="http://ghbtns.com/github-btn.html?user=maraujop&repo=django-crispy-forms&type=watch&count=true&size=large"
    allowtransparency="true" frameborder="0" scrolling="0" width="200px" height="35px"></iframe>
</p>

<p>
  django-crispy-forms is a Django application that lets you easily build, customize and reuse forms using your favorite CSS framework, without writing template code and without having to take care of annoying details. You are currently looking at the documentation of the development release.
</p>


<h3>Support</h3>
<p>
    If you love django-crispy-forms, consider making a small donation <a href="http://flattr.com/thing/512037/django-crispy-forms">on Flattr</a>:
</p>
<p>
    <a class="FlattrButton" style="display:none;" rev="flattr;button:compact;" href="http://django-crispy-forms.rtfd.org"></a>
    <noscript><a href="http://flattr.com/thing/512037/django-crispy-forms" target="_blank">
    <img src="http://api.flattr.com/button/flattr-badge-large.png" alt="Flattr this" title="Click to flattr django-crispy-forms" border="0" /></a></noscript>
</p>
  <h3><a href="index.html">Table Of Contents</a></h3>
  <ul>
<li><a class="reference internal" href="#">Frequently Asked Questions</a><ul>
<li><a class="reference internal" href="#technical">Technical</a><ul>
<li><a class="reference internal" href="#displaying-columns-in-a-boostrap-layout">Displaying columns in a boostrap Layout</a></li>
</ul>
</li>
<li><a class="reference internal" href="#general">General</a><ul>
<li><a class="reference internal" href="#why-use-django-crispy-forms-and-not-other-app">Why use django-crispy-forms and not other app</a></li>
<li><a class="reference internal" href="#how-did-this-all-get-started">How did this all get started?</a></li>
<li><a class="reference internal" href="#how-fast-is-django-crispy-forms">How fast is django-crispy-forms</a></li>
<li><a class="reference internal" href="#which-versions-of-python-does-this-support">Which versions of Python does this support?</a></li>
<li><a class="reference internal" href="#which-versions-of-django-does-this-support">Which versions of Django does this support?</a></li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>Related Topics</h3>
<ul>
  <li><a href="index.html">Documentation overview</a><ul>
      <li>Previous: <a href="dynamic_layouts.html" title="previous chapter">Updating layouts on the go</a></li>
      <li>Next: <a href="api_helpers.html" title="next chapter">API helpers</a></li>
  </ul></li>
</ul>
  <h3>This Page</h3>
  <ul class="this-page-menu">
    <li><a href="_sources/faq.txt"
           rel="nofollow">Show Source</a></li>
  </ul>
<div id="searchbox" style="display: none">
  <h3>Quick search</h3>
    <form class="search" action="search.html" method="get">
      <input type="text" name="q" />
      <input type="submit" value="Go" />
      <input type="hidden" name="check_keywords" value="yes" />
      <input type="hidden" name="area" value="default" />
    </form>
    <p class="searchtip" style="font-size: 90%">
    Enter search terms or a module, class or function name.
    </p>
</div>
<script type="text/javascript">$('#searchbox').show(0);</script>
        </div>
      </div>
      <div class="clearer"></div>
    </div>
    <script type="text/javascript">
    /* <![CDATA[ */
        (function() {
            var s = document.createElement('script'), t = document.getElementsByTagName('script')[0];
            s.type = 'text/javascript';
            s.async = true;
            s.src = 'http://api.flattr.com/js/0.6/load.js?mode=auto';
            t.parentNode.insertBefore(s, t);
        })();
    /* ]]> */</script>

    <div class="footer">
      &copy; Copyright 2009-2013, Miguel Araujo and Daniel Greenfeld.
      Created using <a href="http://sphinx.pocoo.org/">Sphinx</a>.
    </div>
  </body>
</html>