aboutsummaryrefslogtreecommitdiffstats
path: root/rest_framework/templates
diff options
context:
space:
mode:
Diffstat (limited to 'rest_framework/templates')
-rw-r--r--rest_framework/templates/rest_framework/base.html57
-rw-r--r--rest_framework/templates/rest_framework/form.html15
-rw-r--r--rest_framework/templates/rest_framework/horizontal/checkbox.html16
-rw-r--r--rest_framework/templates/rest_framework/horizontal/checkbox_multiple.html30
-rw-r--r--rest_framework/templates/rest_framework/horizontal/fieldset.html11
-rw-r--r--rest_framework/templates/rest_framework/horizontal/form.html15
-rw-r--r--rest_framework/templates/rest_framework/horizontal/input.html14
-rw-r--r--rest_framework/templates/rest_framework/horizontal/list_fieldset.html13
-rw-r--r--rest_framework/templates/rest_framework/horizontal/radio.html30
-rw-r--r--rest_framework/templates/rest_framework/horizontal/select.html18
-rw-r--r--rest_framework/templates/rest_framework/horizontal/select_multiple.html18
-rw-r--r--rest_framework/templates/rest_framework/horizontal/textarea.html14
-rw-r--r--rest_framework/templates/rest_framework/inline/checkbox.html8
-rw-r--r--rest_framework/templates/rest_framework/inline/checkbox_multiple.html13
-rw-r--r--rest_framework/templates/rest_framework/inline/fieldset.html4
-rw-r--r--rest_framework/templates/rest_framework/inline/form.html11
-rw-r--r--rest_framework/templates/rest_framework/inline/input.html6
-rw-r--r--rest_framework/templates/rest_framework/inline/radio.html13
-rw-r--r--rest_framework/templates/rest_framework/inline/select.html10
-rw-r--r--rest_framework/templates/rest_framework/inline/select_multiple.html10
-rw-r--r--rest_framework/templates/rest_framework/inline/textarea.html6
-rw-r--r--rest_framework/templates/rest_framework/vertical/checkbox.html14
-rw-r--r--rest_framework/templates/rest_framework/vertical/checkbox_multiple.html30
-rw-r--r--rest_framework/templates/rest_framework/vertical/fieldset.html7
-rw-r--r--rest_framework/templates/rest_framework/vertical/form.html11
-rw-r--r--rest_framework/templates/rest_framework/vertical/input.html12
-rw-r--r--rest_framework/templates/rest_framework/vertical/list_fieldset.html7
-rw-r--r--rest_framework/templates/rest_framework/vertical/radio.html30
-rw-r--r--rest_framework/templates/rest_framework/vertical/select.html16
-rw-r--r--rest_framework/templates/rest_framework/vertical/select_multiple.html16
-rw-r--r--rest_framework/templates/rest_framework/vertical/textarea.html12
31 files changed, 443 insertions, 44 deletions
diff --git a/rest_framework/templates/rest_framework/base.html b/rest_framework/templates/rest_framework/base.html
index 3628daa0..e9d99a65 100644
--- a/rest_framework/templates/rest_framework/base.html
+++ b/rest_framework/templates/rest_framework/base.html
@@ -26,44 +26,42 @@
</head>
{% block body %}
- <body class="{% block bodyclass %}{% endblock %} container">
+ <body class="{% block bodyclass %}{% endblock %}">
<div class="wrapper">
{% block navbar %}
- <div class="navbar {% block bootstrap_navbar_variant %}navbar-inverse{% endblock %}">
- <div class="navbar-inner">
- <div class="container-fluid">
- <span>
- {% block branding %}
- <a class='brand' rel="nofollow" href='http://www.django-rest-framework.org'>
- Django REST framework <span class="version">{{ version }}</span>
- </a>
- {% endblock %}
- </span>
- <ul class="nav pull-right">
- {% block userlinks %}
- {% if user.is_authenticated %}
- {% optional_logout request user %}
- {% else %}
- {% optional_login request %}
- {% endif %}
- {% endblock %}
- </ul>
- </div>
+ <div class="navbar navbar-static-top {% block bootstrap_navbar_variant %}navbar-inverse{% endblock %}">
+ <div class="container">
+ <span>
+ {% block branding %}
+ <a class='navbar-brand' rel="nofollow" href='http://www.django-rest-framework.org'>
+ Django REST framework <span class="version">{{ version }}</span>
+ </a>
+ {% endblock %}
+ </span>
+ <ul class="nav navbar-nav pull-right">
+ {% block userlinks %}
+ {% if user.is_authenticated %}
+ {% optional_logout request user %}
+ {% else %}
+ {% optional_login request %}
+ {% endif %}
+ {% endblock %}
+ </ul>
</div>
</div>
{% endblock %}
+ <div class="container">
{% block breadcrumbs %}
<ul class="breadcrumb">
{% for breadcrumb_name, breadcrumb_url in breadcrumblist %}
- <li>
- <a href="{{ breadcrumb_url }}" {% if forloop.last %}class="active"{% endif %}>
- {{ breadcrumb_name }}
- </a>
- {% if not forloop.last %}<span class="divider">&rsaquo;</span>{% endif %}
- </li>
+ {% if forloop.last %}
+ <li class="active"><a href="{{ breadcrumb_url }}">{{ breadcrumb_name }}</a></li>
+ {% else %}
+ <li><a href="{{ breadcrumb_url }}">{{ breadcrumb_name }}</a></li>
+ {% endif %}
{% endfor %}
</ul>
{% endblock %}
@@ -154,7 +152,7 @@
<div class="tab-pane" id="post-object-form">
{% with form=post_form %}
<form action="{{ request.get_full_path }}"
- method="POST" enctype="multipart/form-data" class="form-horizontal">
+ method="POST" enctype="multipart/form-data" class="form-horizontal" novalidate>
<fieldset>
{{ post_form }}
<div class="form-actions">
@@ -199,7 +197,7 @@
{% if put_form %}
<div class="tab-pane" id="put-object-form">
<form action="{{ request.get_full_path }}"
- method="POST" enctype="multipart/form-data" class="form-horizontal">
+ method="POST" enctype="multipart/form-data" class="form-horizontal" novalidate>
<fieldset>
{{ put_form }}
<div class="form-actions">
@@ -238,6 +236,7 @@
{% endif %}
</div>
<!-- END Content -->
+ </div><!-- /.container -->
<footer>
{% block footer %}
diff --git a/rest_framework/templates/rest_framework/form.html b/rest_framework/templates/rest_framework/form.html
deleted file mode 100644
index b1e148df..00000000
--- a/rest_framework/templates/rest_framework/form.html
+++ /dev/null
@@ -1,15 +0,0 @@
-{% load rest_framework %}
-{% csrf_token %}
-{{ form.non_field_errors }}
-{% for field in form.fields.values %}
- {% if not field.read_only %}
- <div class="control-group {% if field.errors %}error{% endif %}">
- {{ field.label_tag|add_class:"control-label" }}
- <div class="controls">
- {{ field.widget_html }}
- {% if field.help_text %}<span class="help-block">{{ field.help_text }}</span>{% endif %}
- {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
- </div>
- </div>
- {% endif %}
-{% endfor %}
diff --git a/rest_framework/templates/rest_framework/horizontal/checkbox.html b/rest_framework/templates/rest_framework/horizontal/checkbox.html
new file mode 100644
index 00000000..07a7308f
--- /dev/null
+++ b/rest_framework/templates/rest_framework/horizontal/checkbox.html
@@ -0,0 +1,16 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ <div class="col-sm-offset-2 col-sm-10">
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="{{ field.name }}" value="true" {% if field.value %}checked{% endif %}>
+ {% if field.label %}{{ field.label }}{% endif %}
+ </label>
+ </div>
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+ </div>
+</div>
diff --git a/rest_framework/templates/rest_framework/horizontal/checkbox_multiple.html b/rest_framework/templates/rest_framework/horizontal/checkbox_multiple.html
new file mode 100644
index 00000000..ec7d5935
--- /dev/null
+++ b/rest_framework/templates/rest_framework/horizontal/checkbox_multiple.html
@@ -0,0 +1,30 @@
+<div class="form-group">
+ {% if field.label %}
+ <label class="col-sm-2 control-label {% if style.hide_label %}sr-only{% endif %}">{{ field.label }}</label>
+ {% endif %}
+ <div class="col-sm-10">
+ {% if style.inline %}
+ {% for key, text in field.choices.items %}
+ <label class="checkbox-inline">
+ <input type="checkbox" name="{{ field.name }}" value="{{ key }}" {% if key in field.value %}checked{% endif %}>
+ {{ text }}
+ </label>
+ {% endfor %}
+ {% else %}
+ {% for key, text in field.choices.items %}
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="{{ field.name }}" value="{{ key }}" {% if key in field.value %}checked{% endif %}>
+ {{ text }}
+ </label>
+ </div>
+ {% endfor %}
+ {% endif %}
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+ </div>
+</div>
diff --git a/rest_framework/templates/rest_framework/horizontal/fieldset.html b/rest_framework/templates/rest_framework/horizontal/fieldset.html
new file mode 100644
index 00000000..f6d5dd9d
--- /dev/null
+++ b/rest_framework/templates/rest_framework/horizontal/fieldset.html
@@ -0,0 +1,11 @@
+{% load rest_framework %}
+<fieldset>
+ {% if field.label %}
+ <div class="form-group" style="border-bottom: 1px solid #e5e5e5">
+ <legend class="control-label col-sm-2 {% if style.hide_label %}sr-only{% endif %}" style="border-bottom: 0">{{ field.label }}</legend>
+ </div>
+ {% endif %}
+ {% for nested_field in field %}
+ {% render_field nested_field template_pack=template_pack renderer=renderer %}
+ {% endfor %}
+</fieldset>
diff --git a/rest_framework/templates/rest_framework/horizontal/form.html b/rest_framework/templates/rest_framework/horizontal/form.html
new file mode 100644
index 00000000..fd15b626
--- /dev/null
+++ b/rest_framework/templates/rest_framework/horizontal/form.html
@@ -0,0 +1,15 @@
+{% load rest_framework %}
+<form class="form-horizontal" role="form" action="." method="POST" novalidate>
+ {% csrf_token %}
+ {% for field in form %}
+ {% if not field.read_only %}
+ {% render_field field style=style %}
+ {% endif %}
+ {% endfor %}
+ <!-- form.non_field_errors -->
+ <div class="form-group">
+ <div class="col-sm-offset-2 col-sm-10">
+ <button type="submit" class="btn btn-default">Submit</button>
+ </div>
+ </div>
+</form>
diff --git a/rest_framework/templates/rest_framework/horizontal/input.html b/rest_framework/templates/rest_framework/horizontal/input.html
new file mode 100644
index 00000000..df4aa40f
--- /dev/null
+++ b/rest_framework/templates/rest_framework/horizontal/input.html
@@ -0,0 +1,14 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label class="col-sm-2 control-label {% if style.hide_label %}sr-only{% endif %}">{{ field.label }}</label>
+ {% endif %}
+ <div class="col-sm-10">
+ <input name="{{ field.name }}" class="form-control" type="{{ style.input_type }}" {% if style.placeholder %}placeholder="{{ style.placeholder }}"{% endif %} {% if field.value %}value="{{ field.value }}"{% endif %}>
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+ </div>
+</div>
diff --git a/rest_framework/templates/rest_framework/horizontal/list_fieldset.html b/rest_framework/templates/rest_framework/horizontal/list_fieldset.html
new file mode 100644
index 00000000..a30514c6
--- /dev/null
+++ b/rest_framework/templates/rest_framework/horizontal/list_fieldset.html
@@ -0,0 +1,13 @@
+{% load rest_framework %}
+<fieldset>
+ {% if field.label %}
+ <div class="form-group" style="border-bottom: 1px solid #e5e5e5">
+ <legend class="control-label col-sm-2 {% if style.hide_label %}sr-only{% endif %}" style="border-bottom: 0">{{ field.label }}</legend>
+ </div>
+ {% endif %}
+ <ul>
+ {% for child in field.value %}
+ <li>TODO</li>
+ {% endfor %}
+ </ul>
+</fieldset>
diff --git a/rest_framework/templates/rest_framework/horizontal/radio.html b/rest_framework/templates/rest_framework/horizontal/radio.html
new file mode 100644
index 00000000..52238bb1
--- /dev/null
+++ b/rest_framework/templates/rest_framework/horizontal/radio.html
@@ -0,0 +1,30 @@
+<div class="form-group">
+ {% if field.label %}
+ <label class="col-sm-2 control-label {% if style.hide_label %}sr-only{% endif %}">{{ field.label }}</label>
+ {% endif %}
+ <div class="col-sm-10">
+ {% if style.inline %}
+ {% for key, text in field.choices.items %}
+ <label class="radio-inline">
+ <input type="radio" name="{{ field.name }}" value="{{ key }}" {% if key == field.value %}checked{% endif %}>
+ {{ text }}
+ </label>
+ {% endfor %}
+ {% else %}
+ {% for key, text in field.choices.items %}
+ <div class="radio">
+ <label>
+ <input type="radio" name="{{ field.name }}" value="{{ key }}" {% if key == field.value %}checked{% endif %}>
+ {{ text }}
+ </label>
+ </div>
+ {% endfor %}
+ {% endif %}
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+ </div>
+</div>
diff --git a/rest_framework/templates/rest_framework/horizontal/select.html b/rest_framework/templates/rest_framework/horizontal/select.html
new file mode 100644
index 00000000..1d00f424
--- /dev/null
+++ b/rest_framework/templates/rest_framework/horizontal/select.html
@@ -0,0 +1,18 @@
+<div class="form-group">
+ {% if field.label %}
+ <label class="col-sm-2 control-label {% if style.hide_label %}sr-only{% endif %}">{{ field.label }}</label>
+ {% endif %}
+ <div class="col-sm-10">
+ <select class="form-control" name="{{ field.name }}">
+ {% for key, text in field.choices.items %}
+ <option value="{{ key }}" {% if key == field.value %}selected{% endif %}>{{ text }}</option>
+ {% endfor %}
+ </select>
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+ </div>
+</div>
diff --git a/rest_framework/templates/rest_framework/horizontal/select_multiple.html b/rest_framework/templates/rest_framework/horizontal/select_multiple.html
new file mode 100644
index 00000000..01c251fb
--- /dev/null
+++ b/rest_framework/templates/rest_framework/horizontal/select_multiple.html
@@ -0,0 +1,18 @@
+<div class="form-group">
+ {% if field.label %}
+ <label class="col-sm-2 control-label {% if style.hide_label %}sr-only{% endif %}">{{ field.label }}</label>
+ {% endif %}
+ <div class="col-sm-10">
+ <select multiple class="form-control" name="{{ field.name }}">
+ {% for key, text in field.choices.items %}
+ <option value="{{ key }}" {% if key in field.value %}selected{% endif %}>{{ text }}</option>
+ {% endfor %}
+ </select>
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+ </div>
+</div>
diff --git a/rest_framework/templates/rest_framework/horizontal/textarea.html b/rest_framework/templates/rest_framework/horizontal/textarea.html
new file mode 100644
index 00000000..ec107549
--- /dev/null
+++ b/rest_framework/templates/rest_framework/horizontal/textarea.html
@@ -0,0 +1,14 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label class="col-sm-2 control-label {% if style.hide_label %}sr-only{% endif %}">{{ field.label }}</label>
+ {% endif %}
+ <div class="col-sm-10">
+ <textarea name="{{ field.name }}" class="form-control" {% if style.placeholder %}placeholder="{{ style.placeholder }}"{% endif %} {% if style.rows %}rows="{{ style.rows }}"{% endif %}>{% if field.value %}{{ field.value }}{% endif %}</textarea>
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+ </div>
+</div>
diff --git a/rest_framework/templates/rest_framework/inline/checkbox.html b/rest_framework/templates/rest_framework/inline/checkbox.html
new file mode 100644
index 00000000..71737f15
--- /dev/null
+++ b/rest_framework/templates/rest_framework/inline/checkbox.html
@@ -0,0 +1,8 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="{{ field.name }}" value="true" {% if field.value %}checked{% endif %}>
+ {% if field.label %}{{ field.label }}{% endif %}
+ </label>
+ </div>
+</div>
diff --git a/rest_framework/templates/rest_framework/inline/checkbox_multiple.html b/rest_framework/templates/rest_framework/inline/checkbox_multiple.html
new file mode 100644
index 00000000..6caf6440
--- /dev/null
+++ b/rest_framework/templates/rest_framework/inline/checkbox_multiple.html
@@ -0,0 +1,13 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label class="sr-only">{{ field.label }}</label>
+ {% endif %}
+ {% for key, text in field.choices.items %}
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="{{ rest_framework/field.name }}" value="{{ key }}" {% if key in field.value %}checked{% endif %}>
+ {{ text }}
+ </label>
+ </div>
+ {% endfor %}
+</div>
diff --git a/rest_framework/templates/rest_framework/inline/fieldset.html b/rest_framework/templates/rest_framework/inline/fieldset.html
new file mode 100644
index 00000000..5ee182a5
--- /dev/null
+++ b/rest_framework/templates/rest_framework/inline/fieldset.html
@@ -0,0 +1,4 @@
+{% load rest_framework %}
+{% for nested_field in field %}
+ {% render_field nested_field template_pack=template_pack renderer=renderer %}
+{% endfor %}
diff --git a/rest_framework/templates/rest_framework/inline/form.html b/rest_framework/templates/rest_framework/inline/form.html
new file mode 100644
index 00000000..6a0ea81d
--- /dev/null
+++ b/rest_framework/templates/rest_framework/inline/form.html
@@ -0,0 +1,11 @@
+{% load rest_framework %}
+<form class="form-inline" role="form" action="." method="POST" novalidate>
+ {% csrf_token %}
+ {% for field in form %}
+ {% if not field.read_only %}
+ {% render_field field style=style %}
+ {% endif %}
+ {% endfor %}
+ <!-- form.non_field_errors -->
+ <button type="submit" class="btn btn-default">Submit</button>
+</form>
diff --git a/rest_framework/templates/rest_framework/inline/input.html b/rest_framework/templates/rest_framework/inline/input.html
new file mode 100644
index 00000000..f8ec4faf
--- /dev/null
+++ b/rest_framework/templates/rest_framework/inline/input.html
@@ -0,0 +1,6 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label class="sr-only">{{ field.label }}</label>
+ {% endif %}
+ <input name="{{ field.name }}" class="form-control" type="{{ style.input_type }}" {% if style.placeholder %}placeholder="{{ style.placeholder }}"{% endif %} {% if field.value %}value="{{ field.value }}"{% endif %}>
+</div>
diff --git a/rest_framework/templates/rest_framework/inline/radio.html b/rest_framework/templates/rest_framework/inline/radio.html
new file mode 100644
index 00000000..1915f4f8
--- /dev/null
+++ b/rest_framework/templates/rest_framework/inline/radio.html
@@ -0,0 +1,13 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label class="sr-only">{{ field.label }}</label>
+ {% endif %}
+ {% for key, text in field.choices.items %}
+ <div class="radio">
+ <label>
+ <input type="radio" name="{{ field.name }}" value="{{ key }}" {% if key == field.value %}checked{% endif %}>
+ {{ text }}
+ </label>
+ </div>
+ {% endfor %}
+</div>
diff --git a/rest_framework/templates/rest_framework/inline/select.html b/rest_framework/templates/rest_framework/inline/select.html
new file mode 100644
index 00000000..e9fcebb4
--- /dev/null
+++ b/rest_framework/templates/rest_framework/inline/select.html
@@ -0,0 +1,10 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label class="sr-only">{{ field.label }}</label>
+ {% endif %}
+ <select class="form-control" name="{{ field.name }}">
+ {% for key, text in field.choices.items %}
+ <option value="{{ key }}" {% if key == field.value %}selected{% endif %}>{{ text }}</option>
+ {% endfor %}
+ </select>
+</div>
diff --git a/rest_framework/templates/rest_framework/inline/select_multiple.html b/rest_framework/templates/rest_framework/inline/select_multiple.html
new file mode 100644
index 00000000..feddf7ab
--- /dev/null
+++ b/rest_framework/templates/rest_framework/inline/select_multiple.html
@@ -0,0 +1,10 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label class="sr-only">{{ field.label }}</label>
+ {% endif %}
+ <select multiple class="form-control" name="{{ field.name }}">
+ {% for key, text in field.choices.items %}
+ <option value="{{ key }}" {% if key in field.value %}selected{% endif %}>{{ text }}</option>
+ {% endfor %}
+ </select>
+</div>
diff --git a/rest_framework/templates/rest_framework/inline/textarea.html b/rest_framework/templates/rest_framework/inline/textarea.html
new file mode 100644
index 00000000..0766a01c
--- /dev/null
+++ b/rest_framework/templates/rest_framework/inline/textarea.html
@@ -0,0 +1,6 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label class="sr-only">{{ field.label }}</label>
+ {% endif %}
+ <input name="{{ field.name }}" type="text" class="form-control" {% if style.placeholder %}placeholder="{{ style.placeholder }}"{% endif %} {% if field.value %}value="{{ field.value }}"{% endif %}>
+</div>
diff --git a/rest_framework/templates/rest_framework/vertical/checkbox.html b/rest_framework/templates/rest_framework/vertical/checkbox.html
new file mode 100644
index 00000000..e21a8e90
--- /dev/null
+++ b/rest_framework/templates/rest_framework/vertical/checkbox.html
@@ -0,0 +1,14 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="{{ field.name }}" value="true" {% if value %}checked{% endif %}>
+ {% if field.label %}{{ field.label }}{% endif %}
+ </label>
+ </div>
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+</div> \ No newline at end of file
diff --git a/rest_framework/templates/rest_framework/vertical/checkbox_multiple.html b/rest_framework/templates/rest_framework/vertical/checkbox_multiple.html
new file mode 100644
index 00000000..134cca66
--- /dev/null
+++ b/rest_framework/templates/rest_framework/vertical/checkbox_multiple.html
@@ -0,0 +1,30 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label {% if style.hide_label %}class="sr-only"{% endif %}>{{ field.label }}</label>
+ {% endif %}
+ {% if style.inline %}
+ <div>
+ {% for key, text in field.choices.items %}
+ <label class="checkbox-inline">
+ <input type="checkbox" name="{{ field.name }}" value="{{ key }}" {% if key in field.value %}checked{% endif %}>
+ {{ text }}
+ </label>
+ {% endfor %}
+ </div>
+ {% else %}
+ {% for key, text in field.choices.items %}
+ <div class="checkbox">
+ <label>
+ <input type="checkbox" name="{{ field.name }}" value="{{ key }}" {% if key in field.value %}checked{% endif %}>
+ {{ text }}
+ </label>
+ </div>
+ {% endfor %}
+ {% endif %}
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+</div>
diff --git a/rest_framework/templates/rest_framework/vertical/fieldset.html b/rest_framework/templates/rest_framework/vertical/fieldset.html
new file mode 100644
index 00000000..824e6098
--- /dev/null
+++ b/rest_framework/templates/rest_framework/vertical/fieldset.html
@@ -0,0 +1,7 @@
+{% load rest_framework %}
+<fieldset>
+ {% if field.label %}<legend {% if style.hide_label %}class="sr-only"{% endif %}>{{ field.label }}</legend>{% endif %}
+ {% for nested_field in field %}
+ {% render_field nested_field template_pack=template_pack renderer=renderer %}
+ {% endfor %}
+</fieldset>
diff --git a/rest_framework/templates/rest_framework/vertical/form.html b/rest_framework/templates/rest_framework/vertical/form.html
new file mode 100644
index 00000000..e68835c0
--- /dev/null
+++ b/rest_framework/templates/rest_framework/vertical/form.html
@@ -0,0 +1,11 @@
+{% load rest_framework %}
+<form role="form" action="." method="POST" novalidate>
+ {% csrf_token %}
+ {% for field in form %}
+ {% if not field.read_only %}
+ {% render_field field style=style %}
+ {% endif %}
+ {% endfor %}
+ <!-- form.non_field_errors -->
+ <button type="submit" class="btn btn-default">Submit</button>
+</form>
diff --git a/rest_framework/templates/rest_framework/vertical/input.html b/rest_framework/templates/rest_framework/vertical/input.html
new file mode 100644
index 00000000..e1e21ca1
--- /dev/null
+++ b/rest_framework/templates/rest_framework/vertical/input.html
@@ -0,0 +1,12 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label {% if style.hide_label %}class="sr-only"{% endif %}>{{ field.label }}</label>
+ {% endif %}
+ <input name="{{ field.name }}" class="form-control" type="{{ style.input_type }}" {% if style.placeholder %}placeholder="{{ style.placeholder }}"{% endif %} {% if field.value %}value="{{ field.value }}"{% endif %}>
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+</div>
diff --git a/rest_framework/templates/rest_framework/vertical/list_fieldset.html b/rest_framework/templates/rest_framework/vertical/list_fieldset.html
new file mode 100644
index 00000000..74bbf448
--- /dev/null
+++ b/rest_framework/templates/rest_framework/vertical/list_fieldset.html
@@ -0,0 +1,7 @@
+<fieldset>
+ {% if field.label %}<legend {% if style.hide_label %}class="sr-only"{% endif %}>{{ field.label }}</legend>{% endif %}
+<!-- {% if field.label %}<legend {% if style.hide_label %}class="sr-only"{% endif %}>{{ field.label }}</legend>{% endif %}
+ {% for field_item in field.value.field_items.values() %}
+ {{ renderer.render_field(field_item, layout=layout) }}
+ {% endfor %} -->
+</fieldset>
diff --git a/rest_framework/templates/rest_framework/vertical/radio.html b/rest_framework/templates/rest_framework/vertical/radio.html
new file mode 100644
index 00000000..ed9f9ddb
--- /dev/null
+++ b/rest_framework/templates/rest_framework/vertical/radio.html
@@ -0,0 +1,30 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label {% if style.hide_label %}class="sr-only"{% endif %}>{{ field.label }}</label>
+ {% endif %}
+ {% if style.inline %}
+ <div>
+ {% for key, text in field.choices.items %}
+ <label class="radio-inline">
+ <input type="radio" name="{{ field.name }}" value="{{ key }}" {% if key == field.value %}checked{% endif %}>
+ {{ text }}
+ </label>
+ {% endfor %}
+ </div>
+ {% else %}
+ {% for key, text in field.choices.items %}
+ <div class="radio">
+ <label>
+ <input type="radio" name="{{ field.name }}" value="{{ key }}" {% if key == field.value %}checked{% endif %}>
+ {{ text }}
+ </label>
+ </div>
+ {% endfor %}
+ {% endif %}
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+</div>
diff --git a/rest_framework/templates/rest_framework/vertical/select.html b/rest_framework/templates/rest_framework/vertical/select.html
new file mode 100644
index 00000000..7c673ebb
--- /dev/null
+++ b/rest_framework/templates/rest_framework/vertical/select.html
@@ -0,0 +1,16 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label {% if style.hide_label %}class="sr-only"{% endif %}>{{ field.label }}</label>
+ {% endif %}
+ <select class="form-control" name="{{ field.name }}">
+ {% for key, text in field.choices.items %}
+ <option value="{{ key }}" {% if key == field.value %}selected{% endif %}>{{ text }}</option>
+ {% endfor %}
+ </select>
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+</div>
diff --git a/rest_framework/templates/rest_framework/vertical/select_multiple.html b/rest_framework/templates/rest_framework/vertical/select_multiple.html
new file mode 100644
index 00000000..54839294
--- /dev/null
+++ b/rest_framework/templates/rest_framework/vertical/select_multiple.html
@@ -0,0 +1,16 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label {% if style.hide_label %}class="sr-only"{% endif %}>{{ field.label }}</label>
+ {% endif %}
+ <select multiple class="form-control" name="{{ field.name }}">
+ {% for key, text in field.choices.items %}
+ <option value="{{ key }}" {% if key in field.value %}selected{% endif %}>{{ text }}</option>
+ {% endfor %}
+ </select>
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+</div>
diff --git a/rest_framework/templates/rest_framework/vertical/textarea.html b/rest_framework/templates/rest_framework/vertical/textarea.html
new file mode 100644
index 00000000..840ea853
--- /dev/null
+++ b/rest_framework/templates/rest_framework/vertical/textarea.html
@@ -0,0 +1,12 @@
+<div class="form-group {% if field.errors %}has-error{% endif %}">
+ {% if field.label %}
+ <label {% if style.hide_label %}class="sr-only"{% endif %}>{{ field.label }}</label>
+ {% endif %}
+ <textarea name="{{ field.name }}" class="form-control" {% if style.placeholder %}placeholder="{{ style.placeholder }}"{% endif %} {% if style.rows %}rows="{{ style.rows }}"{% endif %}>{% if field.value %}{{ field.value }}{% endif %}</textarea>
+ {% if field.errors %}
+ {% for error in field.errors %}<span class="help-block">{{ error }}</span>{% endfor %}
+ {% endif %}
+ {% if field.help_text %}
+ <span class="help-block">{{ field.help_text }}</span>
+ {% endif %}
+</div>