Deployed 6a8575b0
with MkDocs version: 0.16.3
2
404.html
|
@ -437,7 +437,7 @@
|
|||
<script src="/js/jquery-1.8.1-min.js"></script>
|
||||
<script src="/js/prettify-1.0.js"></script>
|
||||
<script src="/js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '';</script>
|
||||
<script src="/mkdocs/js/require.js"></script>
|
||||
<script src="/js/theme.js"></script>
|
||||
|
|
|
@ -780,7 +780,7 @@ class ExampleAuthentication(authentication.BaseAuthentication):
|
|||
<h1 id="third-party-packages"><a class="toclink" href="#third-party-packages">Third party packages</a></h1>
|
||||
<p>The following third party packages are also available.</p>
|
||||
<h2 id="django-oauth-toolkit"><a class="toclink" href="#django-oauth-toolkit">Django OAuth Toolkit</a></h2>
|
||||
<p>The <a href="https://github.com/evonove/django-oauth-toolkit">Django OAuth Toolkit</a> package provides OAuth 2.0 support, and works with Python 2.7 and Python 3.3+. The package is maintained by <a href="https://github.com/evonove/">Evonove</a> and uses the excellent <a href="https://github.com/idan/oauthlib">OAuthLib</a>. The package is well documented, and well supported and is currently our <strong>recommended package for OAuth 2.0 support</strong>.</p>
|
||||
<p>The <a href="https://github.com/evonove/django-oauth-toolkit">Django OAuth Toolkit</a> package provides OAuth 2.0 support and works with Python 3.4+. The package is maintained by <a href="https://github.com/evonove/">Evonove</a> and uses the excellent <a href="https://github.com/idan/oauthlib">OAuthLib</a>. The package is well documented, and well supported and is currently our <strong>recommended package for OAuth 2.0 support</strong>.</p>
|
||||
<h4 id="installation-configuration"><a class="toclink" href="#installation-configuration">Installation & configuration</a></h4>
|
||||
<p>Install using <code>pip</code>.</p>
|
||||
<pre><code>pip install django-oauth-toolkit
|
||||
|
@ -842,7 +842,7 @@ REST_FRAMEWORK = {
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -487,7 +487,7 @@ class PostView(APIView):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -536,7 +536,7 @@ class NoNegotiationView(APIView):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -694,7 +694,7 @@ API-only application.)</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -930,9 +930,10 @@ Django's regular <a href="https://docs.djangoproject.com/en/stable/ref/settings/
|
|||
<h1 id="composite-fields"><a class="toclink" href="#composite-fields">Composite fields</a></h1>
|
||||
<h2 id="listfield"><a class="toclink" href="#listfield">ListField</a></h2>
|
||||
<p>A field class that validates a list of objects.</p>
|
||||
<p><strong>Signature</strong>: <code>ListField(child=<A_FIELD_INSTANCE>, min_length=None, max_length=None)</code></p>
|
||||
<p><strong>Signature</strong>: <code>ListField(child=<A_FIELD_INSTANCE>, allow_empty=True, min_length=None, max_length=None)</code></p>
|
||||
<ul>
|
||||
<li><code>child</code> - A field instance that should be used for validating the objects in the list. If this argument is not provided then objects in the list will not be validated.</li>
|
||||
<li><code>allow_empty</code> - Designates if empty lists are allowed.</li>
|
||||
<li><code>min_length</code> - Validates that the list contains no fewer than this number of elements.</li>
|
||||
<li><code>max_length</code> - Validates that the list contains no more than this number of elements.</li>
|
||||
</ul>
|
||||
|
@ -948,9 +949,10 @@ Django's regular <a href="https://docs.djangoproject.com/en/stable/ref/settings/
|
|||
<p>We can now reuse our custom <code>StringListField</code> class throughout our application, without having to provide a <code>child</code> argument to it.</p>
|
||||
<h2 id="dictfield"><a class="toclink" href="#dictfield">DictField</a></h2>
|
||||
<p>A field class that validates a dictionary of objects. The keys in <code>DictField</code> are always assumed to be string values.</p>
|
||||
<p><strong>Signature</strong>: <code>DictField(child=<A_FIELD_INSTANCE>)</code></p>
|
||||
<p><strong>Signature</strong>: <code>DictField(child=<A_FIELD_INSTANCE>, allow_empty=True)</code></p>
|
||||
<ul>
|
||||
<li><code>child</code> - A field instance that should be used for validating the values in the dictionary. If this argument is not provided then values in the mapping will not be validated.</li>
|
||||
<li><code>allow_empty</code> - Designates if empty dictionaries are allowed.</li>
|
||||
</ul>
|
||||
<p>For example, to create a field that validates a mapping of strings to strings, you would write something like this:</p>
|
||||
<pre><code>document = DictField(child=CharField())
|
||||
|
@ -961,16 +963,18 @@ Django's regular <a href="https://docs.djangoproject.com/en/stable/ref/settings/
|
|||
</code></pre>
|
||||
<h2 id="hstorefield"><a class="toclink" href="#hstorefield">HStoreField</a></h2>
|
||||
<p>A preconfigured <code>DictField</code> that is compatible with Django's postgres <code>HStoreField</code>.</p>
|
||||
<p><strong>Signature</strong>: <code>HStoreField(child=<A_FIELD_INSTANCE>)</code></p>
|
||||
<p><strong>Signature</strong>: <code>HStoreField(child=<A_FIELD_INSTANCE>, allow_empty=True)</code></p>
|
||||
<ul>
|
||||
<li><code>child</code> - A field instance that is used for validating the values in the dictionary. The default child field accepts both empty strings and null values.</li>
|
||||
<li><code>allow_empty</code> - Designates if empty dictionaries are allowed.</li>
|
||||
</ul>
|
||||
<p>Note that the child field <strong>must</strong> be an instance of <code>CharField</code>, as the hstore extension stores values as strings.</p>
|
||||
<h2 id="jsonfield"><a class="toclink" href="#jsonfield">JSONField</a></h2>
|
||||
<p>A field class that validates that the incoming data structure consists of valid JSON primitives. In its alternate binary mode, it will represent and validate JSON-encoded binary strings.</p>
|
||||
<p><strong>Signature</strong>: <code>JSONField(binary)</code></p>
|
||||
<p><strong>Signature</strong>: <code>JSONField(binary, encoder)</code></p>
|
||||
<ul>
|
||||
<li><code>binary</code> - If set to <code>True</code> then the field will output and validate a JSON encoded string, rather than a primitive data structure. Defaults to <code>False</code>.</li>
|
||||
<li><code>encoder</code> - Use this JSON encoder to serialize input object. Defaults to <code>None</code>.</li>
|
||||
</ul>
|
||||
<hr />
|
||||
<h1 id="miscellaneous-fields"><a class="toclink" href="#miscellaneous-fields">Miscellaneous fields</a></h1>
|
||||
|
@ -1065,7 +1069,7 @@ class ColorField(serializers.Field):
|
|||
<p>Our <code>ColorField</code> class above currently does not perform any data validation.
|
||||
To indicate invalid data, we should raise a <code>serializers.ValidationError</code>, like so:</p>
|
||||
<pre><code>def to_internal_value(self, data):
|
||||
if not isinstance(data, six.text_type):
|
||||
if not isinstance(data, str):
|
||||
msg = 'Incorrect type. Expected a string, but got %s'
|
||||
raise ValidationError(msg % type(data).__name__)
|
||||
|
||||
|
@ -1088,7 +1092,7 @@ To indicate invalid data, we should raise a <code>serializers.ValidationError</c
|
|||
}
|
||||
|
||||
def to_internal_value(self, data):
|
||||
if not isinstance(data, six.text_type):
|
||||
if not isinstance(data, str):
|
||||
self.fail('incorrect_type', input_type=type(data).__name__)
|
||||
|
||||
if not re.match(r'^rgb\([0-9]+,[0-9]+,[0-9]+\)$', data):
|
||||
|
@ -1257,7 +1261,7 @@ or overly complex.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -828,7 +828,7 @@ that REST framework provides, by implementing a <code>get_schema_fields()</code>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -523,7 +523,7 @@ urlpatterns = i18n_patterns(
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -822,7 +822,7 @@ class BaseRetrieveUpdateDestroyView(MultipleFieldLookupMixin,
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -565,7 +565,7 @@ If you wish to do so, it also provides an exporter that can export those schema
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -747,7 +747,7 @@ that REST framework provides, by implementing a <code>get_schema_fields()</code>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -679,7 +679,7 @@ urlpatterns = [
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -752,7 +752,7 @@ class BlacklistPermission(permissions.BasePermission):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -1003,6 +1003,7 @@ class Note(models.Model):
|
|||
<p>If you explicitly specify a relational field pointing to a
|
||||
<code>ManyToManyField</code> with a through model, be sure to set <code>read_only</code>
|
||||
to <code>True</code>.</p>
|
||||
<p>If you wish to represent <a href="https://docs.djangoproject.com/en/2.2/topics/db/models/#intermediary-manytomany">extra fields on a through model</a> then you may serialize the through model as <a href="https://www.django-rest-framework.org/api-guide/serializers/#dealing-with-nested-objects">a nested object</a>.</p>
|
||||
<hr />
|
||||
<h1 id="third-party-packages"><a class="toclink" href="#third-party-packages">Third Party Packages</a></h1>
|
||||
<p>The following third party packages are also available.</p>
|
||||
|
@ -1030,7 +1031,7 @@ to <code>True</code>.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -886,7 +886,7 @@ In this case you can underspecify the media types it should respond to, by using
|
|||
<h2 id="messagepack"><a class="toclink" href="#messagepack">MessagePack</a></h2>
|
||||
<p><a href="https://msgpack.org/">MessagePack</a> is a fast, efficient binary serialization format. <a href="https://github.com/juanriaza">Juan Riaza</a> maintains the <a href="https://github.com/juanriaza/django-rest-framework-msgpack">djangorestframework-msgpack</a> package which provides MessagePack renderer and parser support for REST framework.</p>
|
||||
<h2 id="xlsx-binary-spreadsheet-endpoints"><a class="toclink" href="#xlsx-binary-spreadsheet-endpoints">XLSX (Binary Spreadsheet Endpoints)</a></h2>
|
||||
<p>XLSX is the world's most popular binary spreadsheet format. <a href="https://githuc.com/flipperpa">Tim Allen</a> of <a href="https://github.com/wharton">The Wharton School</a> maintains <a href="https://github.com/wharton/drf-renderer-xlsx">drf-renderer-xlsx</a>, which renders an endpoint as an XLSX spreadsheet using OpenPyXL, and allows the client to download it. Spreadsheets can be styled on a per-view basis.</p>
|
||||
<p>XLSX is the world's most popular binary spreadsheet format. <a href="https://github.com/flipperpa">Tim Allen</a> of <a href="https://github.com/wharton">The Wharton School</a> maintains <a href="https://github.com/wharton/drf-renderer-xlsx">drf-renderer-xlsx</a>, which renders an endpoint as an XLSX spreadsheet using OpenPyXL, and allows the client to download it. Spreadsheets can be styled on a per-view basis.</p>
|
||||
<h4 id="installation-configuration_3"><a class="toclink" href="#installation-configuration_3">Installation & configuration</a></h4>
|
||||
<p>Install using pip.</p>
|
||||
<pre><code>$ pip install drf-renderer-xlsx
|
||||
|
@ -946,7 +946,7 @@ class MyExampleViewSet(XLSXFileMixin, ReadOnlyModelViewSet):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -593,7 +593,7 @@
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -553,7 +553,7 @@ response['Cache-Control'] = 'no-cache'
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -492,7 +492,7 @@ class APIRootView(APIView):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -763,7 +763,7 @@ rest.router.register_model(MyModel)
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -1174,7 +1174,7 @@ named models, response bodies, enum/pattern/min/max validators, form parameters,
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -1548,7 +1548,7 @@ blacklisted and child serializers can be optionally expanded.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -790,7 +790,7 @@ internally in the codebase.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -570,7 +570,7 @@ is_server_error() # 5xx
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -871,7 +871,7 @@ self.assertEqual(response.content, '{"username": "lauren", "id": 4}')
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -635,7 +635,7 @@ class RandomRateThrottle(throttling.BaseThrottle):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -578,7 +578,7 @@ class ExampleSerializer(serializers.Serializer):
|
|||
]
|
||||
</code></pre>
|
||||
<hr />
|
||||
<p><strong>Note</strong>: The <code>UniqueTogetherValidation</code> class always imposes an implicit constraint that all the fields it applies to are always treated as required. Fields with <code>default</code> values are an exception to this as they always supply a value even when omitted from user input.</p>
|
||||
<p><strong>Note</strong>: The <code>UniqueTogetherValidator</code> class always imposes an implicit constraint that all the fields it applies to are always treated as required. Fields with <code>default</code> values are an exception to this as they always supply a value even when omitted from user input.</p>
|
||||
<hr />
|
||||
<h2 id="uniquefordatevalidator"><a class="toclink" href="#uniquefordatevalidator">UniqueForDateValidator</a></h2>
|
||||
<h2 id="uniqueformonthvalidator"><a class="toclink" href="#uniqueformonthvalidator">UniqueForMonthValidator</a></h2>
|
||||
|
@ -621,7 +621,7 @@ class ExampleSerializer(serializers.Serializer):
|
|||
<pre><code>published = serializers.HiddenField(default=timezone.now)
|
||||
</code></pre>
|
||||
<hr />
|
||||
<p><strong>Note</strong>: The <code>UniqueFor<Range>Validation</code> classes impose an implicit constraint that the fields they are applied to are always treated as required. Fields with <code>default</code> values are an exception to this as they always supply a value even when omitted from user input.</p>
|
||||
<p><strong>Note</strong>: The <code>UniqueFor<Range>Validator</code> classes impose an implicit constraint that the fields they are applied to are always treated as required. Fields with <code>default</code> values are an exception to this as they always supply a value even when omitted from user input.</p>
|
||||
<hr />
|
||||
<h1 id="advanced-field-defaults"><a class="toclink" href="#advanced-field-defaults">Advanced field defaults</a></h1>
|
||||
<p>Validators that are applied across multiple fields in the serializer can sometimes require a field input that should not be provided by the API client, but that <em>is</em> available as input to the validator.</p>
|
||||
|
@ -745,7 +745,7 @@ to your <code>Serializer</code> subclass. This is documented in the
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -648,7 +648,7 @@ Accept: application/json
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -634,7 +634,7 @@ def view(request):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -751,7 +751,7 @@ class CreateListRetrieveViewSet(mixins.CreateModelMixin,
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -579,7 +579,7 @@ def create(self, validated_data):
|
|||
<p>The reason behind this is that Django's <code>ValidationError</code> class is intended for use with HTML forms and its API makes using it slightly awkward with nested validation errors that can occur in serializers.</p>
|
||||
<p>For most users this change shouldn't require any updates to your codebase, but it is worth ensuring that whenever raising validation errors you should prefer using the <code>serializers.ValidationError</code> exception class, and not Django's built-in exception.</p>
|
||||
<p>We strongly recommend that you use the namespaced import style of <code>import serializers</code> and not <code>from serializers import ValidationError</code> in order to avoid any potential confusion.</p>
|
||||
<h4 id="change-to-validate_ltfield_namegt"><a class="toclink" href="#change-to-validate_ltfield_namegt">Change to <code>validate_<field_name></code>.</a></h4>
|
||||
<h4 id="change-to-validate_field_name"><a class="toclink" href="#change-to-validate_field_name">Change to <code>validate_<field_name></code>.</a></h4>
|
||||
<p>The <code>validate_<field_name></code> method hooks that can be attached to serializer classes change their signature slightly and return type. Previously these would take a dictionary of all incoming data, and a key representing the field name, and would return a dictionary including the validated data for that field:</p>
|
||||
<pre><code>def validate_score(self, attrs, source):
|
||||
if attrs['score'] % 10 != 0:
|
||||
|
@ -605,7 +605,7 @@ def create(self, validated_data):
|
|||
raise serializers.ValidationError({'my_field': 'A field error'})
|
||||
</code></pre>
|
||||
<p>This ensures you can still write validation that compares all the input fields, but that marks the error against a particular field.</p>
|
||||
<h4 id="removal-of-transform_ltfield_namegt"><a class="toclink" href="#removal-of-transform_ltfield_namegt">Removal of <code>transform_<field_name></code>.</a></h4>
|
||||
<h4 id="removal-of-transform_field_name"><a class="toclink" href="#removal-of-transform_field_name">Removal of <code>transform_<field_name></code>.</a></h4>
|
||||
<p>The under-used <code>transform_<field_name></code> on serializer classes is no longer provided. Instead you should just override <code>to_representation()</code> if you need to apply any modifications to the representation style.</p>
|
||||
<p>For example:</p>
|
||||
<pre><code>def to_representation(self, instance):
|
||||
|
@ -1220,7 +1220,7 @@ amount = serializers.DecimalField(
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -614,7 +614,7 @@ Host: example.org
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -543,7 +543,7 @@
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -491,7 +491,7 @@
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -615,7 +615,7 @@ metadata class</a>.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -677,7 +677,7 @@ in version 3.3 and raised a deprecation warning in 3.4. Its usage is now mandato
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -619,7 +619,7 @@ on realtime support, for the 3.7 release.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -553,7 +553,7 @@ class CustomView(APIView):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -522,7 +522,7 @@ for a complete listing.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -621,7 +621,7 @@ ASGI.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -520,7 +520,7 @@ username instead of YOUR-USERNAME:</p>
|
|||
<h2 id="testing"><a class="toclink" href="#testing">Testing</a></h2>
|
||||
<p>To run the tests, clone the repository, and then:</p>
|
||||
<pre><code># Setup the virtual environment
|
||||
virtualenv env
|
||||
python3 -m venv env
|
||||
source env/bin/activate
|
||||
pip install django
|
||||
pip install -r requirements.txt
|
||||
|
@ -560,7 +560,7 @@ pip install -r requirements.txt
|
|||
<p>It's also always best to make a new branch before starting work on a pull request. This means that you'll be able to later switch back to working on another separate issue without interfering with an ongoing pull requests.</p>
|
||||
<p>It's also useful to remember that if you have an outstanding pull request then pushing new commits to your GitHub repo will also automatically update the pull requests.</p>
|
||||
<p>GitHub's documentation for working on pull requests is <a href="https://help.github.com/articles/using-pull-requests">available here</a>.</p>
|
||||
<p>Always run the tests before submitting pull requests, and ideally run <code>tox</code> in order to check that your modifications are compatible with both Python 2 and Python 3, and that they run properly on all supported versions of Django.</p>
|
||||
<p>Always run the tests before submitting pull requests, and ideally run <code>tox</code> in order to check that your modifications are compatible on all supported versions of Python and Django.</p>
|
||||
<p>Once you've made a pull request take a look at the Travis build status in the GitHub interface and make sure the tests are running as you'd expect.</p>
|
||||
<p><img alt="Travis status" src="../../img/travis-status.png" /></p>
|
||||
<p><em>Above: Travis build notifications</em></p>
|
||||
|
@ -635,7 +635,7 @@ More text...
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -835,7 +835,7 @@ A: No, we value individual sponsors just as much as corporate sponsors and appre
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -432,6 +432,7 @@
|
|||
<li><a href="https://www.python.org/jobs/">https://www.python.org/jobs/</a></li>
|
||||
<li><a href="https://djangogigs.com">https://djangogigs.com</a></li>
|
||||
<li><a href="https://djangojobs.net/jobs/">https://djangojobs.net/jobs/</a></li>
|
||||
<li><a href="https://findwork.dev/django-rest-framework-jobs">https://findwork.dev/django-rest-framework-jobs</a></li>
|
||||
<li><a href="https://www.indeed.com/q-Django-jobs.html">https://www.indeed.com/q-Django-jobs.html</a></li>
|
||||
<li><a href="https://stackoverflow.com/jobs/developer-jobs-using-django">https://stackoverflow.com/jobs/developer-jobs-using-django</a></li>
|
||||
<li><a href="https://www.upwork.com/o/jobs/browse/skill/django-framework/">https://www.upwork.com/o/jobs/browse/skill/django-framework/</a></li>
|
||||
|
@ -461,7 +462,7 @@
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -581,7 +581,7 @@
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -510,7 +510,7 @@ funded via the <a href="../funding/">REST framework paid plans</a>.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -626,7 +626,7 @@ django-admin compilemessages
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -417,6 +417,10 @@
|
|||
<a href="#upgrading">Upgrading</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#310x-series">3.10.x series</a>
|
||||
</li>
|
||||
|
||||
<li>
|
||||
<a href="#39x-series">3.9.x series</a>
|
||||
</li>
|
||||
|
@ -504,12 +508,18 @@
|
|||
<pre><code>pip show djangorestframework
|
||||
</code></pre>
|
||||
<hr />
|
||||
<h2 id="310x-series"><a class="toclink" href="#310x-series">3.10.x series</a></h2>
|
||||
<h3 id="3100"><a class="toclink" href="#3100">3.10.0</a></h3>
|
||||
<p><strong>Date</strong>: <a href="https://github.com/encode/django-rest-framework/milestone/69?closed=1">Unreleased</a></p>
|
||||
<ul>
|
||||
<li>Resolve DeprecationWarning with markdown. <a href="https://github.com/encode/django-rest-framework/issues/6317">#6317</a></li>
|
||||
</ul>
|
||||
<h2 id="39x-series"><a class="toclink" href="#39x-series">3.9.x series</a></h2>
|
||||
<h3 id="394"><a class="toclink" href="#394">3.9.4</a></h3>
|
||||
<p><strong>Date</strong>: [10th May 2019]</p>
|
||||
<p><strong>Date</strong>: 10th May 2019</p>
|
||||
<p>This is a maintenance release that fixes an error handling bug under Python 2.</p>
|
||||
<h3 id="393"><a class="toclink" href="#393">3.9.3</a></h3>
|
||||
<p><strong>Date</strong>: [29th April 2019]</p>
|
||||
<p><strong>Date</strong>: 29th April 2019</p>
|
||||
<p>This is the last Django REST Framework release that will support Python 2.
|
||||
Be sure to upgrade to Python 3 before upgrading to Django REST Framework 3.10.</p>
|
||||
<ul>
|
||||
|
@ -536,7 +546,7 @@ Be sure to upgrade to Python 3 before upgrading to Django REST Framework 3.10.</
|
|||
<li>Introduced <code>RemovedInDRF…Warning</code> classes to simplify deprecations. <a href="https://github.com/encode/django-rest-framework/issues/6480">#6480</a></li>
|
||||
</ul>
|
||||
<h3 id="391"><a class="toclink" href="#391">3.9.1</a></h3>
|
||||
<p><strong>Date</strong>: <a href="https://github.com/encode/django-rest-framework/milestone/71?closed=1">16th January 2019</a></p>
|
||||
<p><strong>Date</strong>: <a href="https://github.com/encode/django-rest-framework/milestone/70?closed=1">16th January 2019</a></p>
|
||||
<ul>
|
||||
<li>Resolve XSS issue in browsable API. <a href="https://github.com/encode/django-rest-framework/issues/6330">#6330</a></li>
|
||||
<li>Upgrade Bootstrap to 3.4.0 to resolve XSS issue.</li>
|
||||
|
@ -1298,7 +1308,7 @@ Previously may have been stored internally as <code>None</code>.</p>
|
|||
<li>Added regex style to <code>SearchFilter</code>. (<a href="https://github.com/encode/django-rest-framework/issues/3316">#3316</a>)</li>
|
||||
<li>Resolve issues with setting blank HTML fields. (<a href="https://github.com/encode/django-rest-framework/issues/3318">#3318</a>) (<a href="https://github.com/encode/django-rest-framework/issues/3321">#3321</a>)</li>
|
||||
<li>Correctly display existing 'select multiple' values in browsable API forms. (<a href="https://github.com/encode/django-rest-framework/issues/3290">#3290</a>)</li>
|
||||
<li>Resolve duplicated validation message for <code>IPAddressField</code>. ([#3249<a href="https://github.com/encode/django-rest-framework/issues/3249">gh3249</a>) (<a href="https://github.com/encode/django-rest-framework/issues/3250">#3250</a>)</li>
|
||||
<li>Resolve duplicated validation message for <code>IPAddressField</code>. ([#3249[gh3249]) (<a href="https://github.com/encode/django-rest-framework/issues/3250">#3250</a>)</li>
|
||||
<li>Fix to ensure admin renderer continues to work when pagination is disabled. (<a href="https://github.com/encode/django-rest-framework/issues/3275">#3275</a>)</li>
|
||||
<li>Resolve error with <code>LimitOffsetPagination</code> when count=0, offset=0. (<a href="https://github.com/encode/django-rest-framework/issues/3303">#3303</a>)</li>
|
||||
</ul>
|
||||
|
@ -1591,6 +1601,8 @@ Previously may have been stored internally as <code>None</code>.</p>
|
|||
<!-- 3.9.2 -->
|
||||
|
||||
<!-- 3.9.3 -->
|
||||
|
||||
<!-- 3.10.0 -->
|
||||
|
||||
|
||||
</div> <!--/span-->
|
||||
|
@ -1611,7 +1623,7 @@ Previously may have been stored internally as <code>None</code>.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -634,6 +634,7 @@ You probably want to also tag the version now:
|
|||
<li><a href="https://github.com/dealertrack/djangorest-alchemy">djangorest-alchemy</a> - SQLAlchemy support for REST framework.</li>
|
||||
<li><a href="https://github.com/izimobil/django-rest-framework-datatables">djangorestframework-datatables</a> - Seamless integration between Django REST framework and <a href="https://datatables.net">Datatables</a>.</li>
|
||||
<li><a href="https://github.com/jozo/django-rest-framework-condition">django-rest-framework-condition</a> - Decorators for managing HTTP cache headers for Django REST framework (ETag and Last-modified).</li>
|
||||
<li><a href="https://github.com/shosca/django-rest-witchcraft">django-rest-witchcraft</a> - Provides DRF integration with SQLAlchemy with SQLAlchemy model serializers/viewsets and a bunch of other goodies</li>
|
||||
</ul>
|
||||
|
||||
|
||||
|
@ -655,7 +656,7 @@ You probably want to also tag the version now:
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -533,7 +533,7 @@
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
BIN
img/drfdocs.png
Before Width: | Height: | Size: 567 KiB |
Before Width: | Height: | Size: 6.8 KiB After Width: | Height: | Size: 6.9 KiB |
BIN
img/premium/esg-readme.png
Normal file
After Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 16 KiB |
Before Width: | Height: | Size: 22 KiB |
Before Width: | Height: | Size: 13 KiB |
Before Width: | Height: | Size: 23 KiB |
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 17 KiB |
Before Width: | Height: | Size: 52 KiB |
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 19 KiB |
12
index.html
|
@ -536,7 +536,7 @@ continued development by <strong><a href="community/funding/">signing up for a p
|
|||
<ul class="premium-promo promo">
|
||||
<li><a href="https://getsentry.com/welcome/" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/sentry130.png)">Sentry</a></li>
|
||||
<li><a href="https://getstream.io/try-the-api/?utm_source=drf&utm_medium=banner&utm_campaign=drf" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/stream-130.png)">Stream</a></li>
|
||||
<li><a href="https://releasehistory.io" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/release-history.png)">Release History</a></li>
|
||||
<li><a href="https://software.esg-usa.com" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/esg-new-logo.png)">ESG</a></li>
|
||||
<li><a href="https://rollbar.com" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/rollbar2.png)">Rollbar</a></li>
|
||||
<li><a href="https://cadre.com" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/cadre.png)">Cadre</a></li>
|
||||
<li><a href="https://hubs.ly/H0f30Lf0" style="background-image: url(https://fund-rest-framework.s3.amazonaws.com/kloudless-plus-text.png)">Kloudless</a></li>
|
||||
|
@ -545,12 +545,12 @@ continued development by <strong><a href="community/funding/">signing up for a p
|
|||
|
||||
<div style="clear: both; padding-bottom: 20px;"></div>
|
||||
|
||||
<p><em>Many thanks to all our <a href="https://fund.django-rest-framework.org/topics/funding/#our-sponsors">wonderful sponsors</a>, and in particular to our premium backers, <a href="https://getsentry.com/welcome/">Sentry</a>, <a href="https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf">Stream</a>, <a href="https://releasehistory.io">Release History</a>, <a href="https://rollbar.com">Rollbar</a>, <a href="https://cadre.com">Cadre</a>, <a href="https://hubs.ly/H0f30Lf0">Kloudless</a>, and <a href="https://lightsonsoftware.com">Lights On Software</a>.</em></p>
|
||||
<p><em>Many thanks to all our <a href="https://fund.django-rest-framework.org/topics/funding/#our-sponsors">wonderful sponsors</a>, and in particular to our premium backers, <a href="https://getsentry.com/welcome/">Sentry</a>, <a href="https://getstream.io/?utm_source=drf&utm_medium=banner&utm_campaign=drf">Stream</a>, <a href="https://software.esg-usa.com/">ESG</a>, <a href="https://rollbar.com">Rollbar</a>, <a href="https://cadre.com">Cadre</a>, <a href="https://hubs.ly/H0f30Lf0">Kloudless</a>, and <a href="https://lightsonsoftware.com">Lights On Software</a>.</em></p>
|
||||
<hr />
|
||||
<h2 id="requirements"><a class="toclink" href="#requirements">Requirements</a></h2>
|
||||
<p>REST framework requires the following:</p>
|
||||
<ul>
|
||||
<li>Python (2.7, 3.4, 3.5, 3.6, 3.7)</li>
|
||||
<li>Python (3.5, 3.6, 3.7)</li>
|
||||
<li>Django (1.11, 2.0, 2.1, 2.2)</li>
|
||||
</ul>
|
||||
<p>We <strong>highly recommend</strong> and only officially support the latest patch release of
|
||||
|
@ -558,9 +558,9 @@ each Python and Django series.</p>
|
|||
<p>The following packages are optional:</p>
|
||||
<ul>
|
||||
<li><a href="https://pypi.org/project/coreapi/">coreapi</a> (1.32.0+) - Schema generation support.</li>
|
||||
<li><a href="https://pypi.org/project/Markdown/">Markdown</a> (2.1.0+) - Markdown support for the browsable API.</li>
|
||||
<li><a href="https://pypi.org/project/Markdown/">Markdown</a> (3.0.0+) - Markdown support for the browsable API.</li>
|
||||
<li><a href="https://pypi.org/project/Pygments/">Pygments</a> (2.4.0+) - Add sytax highlighting to Markdown processing.</li>
|
||||
<li><a href="https://pypi.org/project/django-filter/">django-filter</a> (1.0.1+) - Filtering support.</li>
|
||||
<li><a href="https://github.com/maraujop/django-crispy-forms">django-crispy-forms</a> - Improved HTML display for filtering.</li>
|
||||
<li><a href="https://github.com/django-guardian/django-guardian">django-guardian</a> (1.1.1+) - Object level permissions support.</li>
|
||||
</ul>
|
||||
<h2 id="installation"><a class="toclink" href="#installation">Installation</a></h2>
|
||||
|
@ -693,7 +693,7 @@ OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.</p>
|
|||
<script src="./js/jquery-1.8.1-min.js"></script>
|
||||
<script src="./js/prettify-1.0.js"></script>
|
||||
<script src="./js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '.';</script>
|
||||
<script src="./mkdocs/js/require.js"></script>
|
||||
<script src="./js/theme.js"></script>
|
||||
|
|
128
sitemap.xml
|
@ -4,7 +4,7 @@
|
|||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
|
@ -13,49 +13,49 @@
|
|||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//tutorial/quickstart/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//tutorial/1-serialization/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//tutorial/2-requests-and-responses/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//tutorial/3-class-based-views/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//tutorial/4-authentication-and-permissions/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//tutorial/5-relationships-and-hyperlinked-apis/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//tutorial/6-viewsets-and-routers/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//tutorial/7-schemas-and-client-libraries/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
|
@ -65,169 +65,169 @@
|
|||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/requests/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/responses/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/views/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/generic-views/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/viewsets/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/routers/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/parsers/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/renderers/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/serializers/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/fields/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/relations/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/validators/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/authentication/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/permissions/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/caching/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/throttling/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/filtering/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/pagination/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/versioning/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/content-negotiation/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/metadata/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/schemas/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/format-suffixes/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/reverse/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/exceptions/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/status-codes/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/testing/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//api-guide/settings/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
|
@ -237,49 +237,49 @@
|
|||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//topics/documenting-your-api/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//topics/api-clients/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//topics/internationalization/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//topics/ajax-csrf-cors/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//topics/html-and-forms/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//topics/browser-enhancements/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//topics/browsable-api/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//topics/rest-hypermedia-hateoas/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
|
@ -289,115 +289,115 @@
|
|||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/tutorials-and-resources/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/third-party-packages/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/contributing/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/project-management/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/release-notes/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/3.9-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/3.8-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/3.7-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/3.6-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/3.5-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/3.4-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/3.3-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/3.2-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/3.1-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/3.0-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/kickstarter-announcement/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/mozilla-grant/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/funding/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>https://www.django-rest-framework.org//community/jobs/</loc>
|
||||
<lastmod>2019-05-10</lastmod>
|
||||
<lastmod>2019-06-04</lastmod>
|
||||
<changefreq>daily</changefreq>
|
||||
</url>
|
||||
|
||||
|
|
|
@ -474,7 +474,7 @@
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -927,7 +927,7 @@ client.get("https://api.example.org/").then(function(data) {
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -559,7 +559,7 @@
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -523,7 +523,7 @@ as well as how to support content types other than form-encoded data.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -451,7 +451,7 @@
|
|||
</ul>
|
||||
<h3 id="installation"><a class="toclink" href="#installation">Installation</a></h3>
|
||||
<p>The <code>coreapi</code> library is required as a dependency for the API docs. Make sure
|
||||
to install the latest version. The <code>pygments</code> and <code>markdown</code> libraries
|
||||
to install the latest version. The <code>Pygments</code> and <code>Markdown</code> libraries
|
||||
are optional but recommended.</p>
|
||||
<p>To install the API documentation, you'll need to include it in your project's URLconf:</p>
|
||||
<pre><code>from rest_framework.documentation import include_docs_urls
|
||||
|
@ -596,17 +596,11 @@ generation tools like <code>swagger-codegen</code>.</p>
|
|||
<p>This also translates into a very useful interactive documentation viewer in the form of <code>swagger-ui</code>:</p>
|
||||
<p><img alt="Screenshot - drf-yasg" src="../../img/drf-yasg.png" /></p>
|
||||
<hr />
|
||||
<h4 id="drf-docs"><a class="toclink" href="#drf-docs">DRF Docs</a></h4>
|
||||
<p><a href="https://github.com/ekonstantinidis/django-rest-framework-docs">DRF Docs</a> allows you to document Web APIs made with Django REST Framework and it is authored by Emmanouil Konstantinidis. It's made to work out of the box and its setup should not take more than a couple of minutes. Complete documentation can be found on the <a href="https://www.drfdocs.com/">website</a> while there is also a <a href="http://demo.drfdocs.com/">demo</a> available for people to see what it looks like. <strong>Live API Endpoints</strong> allow you to utilize the endpoints from within the documentation in a neat way.</p>
|
||||
<p>Features include customizing the template with your branding, settings for hiding the docs depending on the environment and more.</p>
|
||||
<p>Both this package and Django REST Swagger are fully documented, well supported, and come highly recommended.</p>
|
||||
<p><img alt="Screenshot - DRF docs" src="../../img/drfdocs.png" /></p>
|
||||
<hr />
|
||||
<h4 id="django-rest-swagger"><a class="toclink" href="#django-rest-swagger">Django REST Swagger</a></h4>
|
||||
<p>Marc Gibbons' <a href="https://github.com/marcgibbons/django-rest-swagger">Django REST Swagger</a> integrates REST framework with the <a href="https://swagger.io/">Swagger</a> API documentation tool. The package produces well presented API documentation, and includes interactive tools for testing API endpoints.</p>
|
||||
<p>Django REST Swagger supports REST framework versions 2.3 and above.</p>
|
||||
<p>Mark is also the author of the <a href="https://github.com/marcgibbons/django-rest-framework-docs">REST Framework Docs</a> package which offers clean, simple autogenerated documentation for your API but is deprecated and has moved to Django REST Swagger.</p>
|
||||
<p>Both this package and DRF docs are fully documented, well supported, and come highly recommended.</p>
|
||||
<p>This package is fully documented, well supported, and comes highly recommended.</p>
|
||||
<p><img alt="Screenshot - Django REST Swagger" src="../../img/django-rest-swagger.png" /></p>
|
||||
<hr />
|
||||
<h3 id="drf-autodocs"><a class="toclink" href="#drf-autodocs">DRF AutoDocs</a></h3>
|
||||
|
@ -646,7 +640,7 @@ generation tools like <code>swagger-codegen</code>.</p>
|
|||
<p>When working with viewsets, an appropriate suffix is appended to each generated view. For example, the view set <code>UserViewSet</code> will generate views named <code>User List</code> and <code>User Instance</code>.</p>
|
||||
<h4 id="setting-the-description"><a class="toclink" href="#setting-the-description">Setting the description</a></h4>
|
||||
<p>The description in the browsable API is generated from the docstring of the view or viewset.</p>
|
||||
<p>If the python <code>markdown</code> library is installed, then <a href="https://daringfireball.net/projects/markdown/">markdown syntax</a> may be used in the docstring, and will be converted to HTML in the browsable API. For example:</p>
|
||||
<p>If the python <code>Markdown</code> library is installed, then <a href="https://daringfireball.net/projects/markdown/syntax">markdown syntax</a> may be used in the docstring, and will be converted to HTML in the browsable API. For example:</p>
|
||||
<pre><code>class AccountListView(views.APIView):
|
||||
"""
|
||||
Returns a list of all **active** accounts in the system.
|
||||
|
@ -696,7 +690,7 @@ generation tools like <code>swagger-codegen</code>.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -675,7 +675,7 @@ class ProfileDetail(APIView):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -541,7 +541,7 @@ available for Django to use. You should see a message like <code>processing file
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -477,7 +477,7 @@ the Design of Network-based Software Architectures</a>.</li>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -468,16 +468,16 @@
|
|||
<p><strong>Note</strong>: The code for this tutorial is available in the <a href="https://github.com/encode/rest-framework-tutorial">encode/rest-framework-tutorial</a> repository on GitHub. The completed implementation is also online as a sandbox version for testing, <a href="https://restframework.herokuapp.com/">available here</a>.</p>
|
||||
<hr />
|
||||
<h2 id="setting-up-a-new-environment"><a class="toclink" href="#setting-up-a-new-environment">Setting up a new environment</a></h2>
|
||||
<p>Before we do anything else we'll create a new virtual environment, using <a href="http://www.virtualenv.org/en/latest/index.html">virtualenv</a>. This will make sure our package configuration is kept nicely isolated from any other projects we're working on.</p>
|
||||
<pre><code>virtualenv env
|
||||
<p>Before we do anything else we'll create a new virtual environment, using <a href="https://docs.python.org/3/library/venv.html">venv</a>. This will make sure our package configuration is kept nicely isolated from any other projects we're working on.</p>
|
||||
<pre><code>python3 -m venv env
|
||||
source env/bin/activate
|
||||
</code></pre>
|
||||
<p>Now that we're inside a virtualenv environment, we can install our package requirements.</p>
|
||||
<p>Now that we're inside a virtual environment, we can install our package requirements.</p>
|
||||
<pre><code>pip install django
|
||||
pip install djangorestframework
|
||||
pip install pygments # We'll be using this for the code highlighting
|
||||
</code></pre>
|
||||
<p><strong>Note:</strong> To exit the virtualenv environment at any time, just type <code>deactivate</code>. For more information see the <a href="http://www.virtualenv.org/en/latest/index.html">virtualenv documentation</a>.</p>
|
||||
<p><strong>Note:</strong> To exit the virtual environment at any time, just type <code>deactivate</code>. For more information see the <a href="https://docs.python.org/3/library/venv.html">venv documentation</a>.</p>
|
||||
<h2 id="getting-started"><a class="toclink" href="#getting-started">Getting started</a></h2>
|
||||
<p>Okay, we're ready to get coding.
|
||||
To get started, let's create a new project to work with.</p>
|
||||
|
@ -789,7 +789,7 @@ HTTP/1.1 200 OK
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -638,7 +638,7 @@ http --json POST http://127.0.0.1:8000/snippets/ code="print(456)"
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -581,7 +581,7 @@ class SnippetDetail(generics.RetrieveUpdateDestroyAPIView):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -647,7 +647,7 @@ class IsOwnerOrReadOnly(permissions.BasePermission):
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -590,7 +590,7 @@ urlpatterns = format_suffix_patterns([
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -563,7 +563,7 @@ and interact with our API using a client library or command line tool.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -647,7 +647,7 @@ client libraries you'll need to refer to the full documentation.</p>
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|
|
@ -456,11 +456,11 @@
|
|||
mkdir tutorial
|
||||
cd tutorial
|
||||
|
||||
# Create a virtualenv to isolate our package dependencies locally
|
||||
virtualenv env
|
||||
# Create a virtual environment to isolate our package dependencies locally
|
||||
python3 -m venv env
|
||||
source env/bin/activate # On Windows use `env\Scripts\activate`
|
||||
|
||||
# Install Django and Django REST framework into the virtualenv
|
||||
# Install Django and Django REST framework into the virtual environment
|
||||
pip install django
|
||||
pip install djangorestframework
|
||||
|
||||
|
@ -653,7 +653,7 @@ HTTP/1.1 200 OK
|
|||
<script src="../../js/jquery-1.8.1-min.js"></script>
|
||||
<script src="../../js/prettify-1.0.js"></script>
|
||||
<script src="../../js/bootstrap-2.1.1-min.js"></script>
|
||||
<script src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script async src="https://fund.django-rest-framework.org/sidebar_include.js"></script>
|
||||
<script>var base_url = '../..';</script>
|
||||
<script src="../../mkdocs/js/require.js"></script>
|
||||
<script src="../../js/theme.js"></script>
|
||||
|
|