{"action":"closed","number":25,"pull_request":{"url":"https://api.github.com/repos/edoburu/django-project-template/pulls/25","id":172716732,"node_id":"MDExOlB1bGxSZXF1ZXN0MTcyNzE2NzMy","html_url":"https://github.com/edoburu/django-project-template/pull/25","diff_url":"https://github.com/edoburu/django-project-template/pull/25.diff","patch_url":"https://github.com/edoburu/django-project-template/pull/25.patch","issue_url":"https://api.github.com/repos/edoburu/django-project-template/issues/25","number":25,"state":"closed","locked":false,"title":"Scheduled daily dependency update on sunday","user":{"login":"pyup-bot","id":16239342,"node_id":"MDQ6VXNlcjE2MjM5MzQy","avatar_url":"https://avatars0.githubusercontent.com/u/16239342?v=4","gravatar_id":"","url":"https://api.github.com/users/pyup-bot","html_url":"https://github.com/pyup-bot","followers_url":"https://api.github.com/users/pyup-bot/followers","following_url":"https://api.github.com/users/pyup-bot/following{/other_user}","gists_url":"https://api.github.com/users/pyup-bot/gists{/gist_id}","starred_url":"https://api.github.com/users/pyup-bot/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pyup-bot/subscriptions","organizations_url":"https://api.github.com/users/pyup-bot/orgs","repos_url":"https://api.github.com/users/pyup-bot/repos","events_url":"https://api.github.com/users/pyup-bot/events{/privacy}","received_events_url":"https://api.github.com/users/pyup-bot/received_events","type":"User","site_admin":false},"body":"\n\n\n## Updates\nHere's a list of all the updates bundled in this pull request. I've added some links to make it easier for you to find all the information you need.\n<table align=\"center\">\n\n<tr>\n<td><b>Django</b></td>\n<td align=\"center\">1.11.10</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">2.0.2</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/django\">PyPI</a> | <a href=\"https://pyup.io/changelogs/django/\">Changelog</a> | <a href=\"https://www.djangoproject.com/\">Homepage</a> \n\n</td>\n\n<tr>\n<td><b>ipython</b></td>\n<td align=\"center\">5.5.0</td>\n<td align=\"center\">&raquo;</td>\n<td align=\"center\">6.2.1</td>\n<td>\n     <a href=\"https://pypi.python.org/pypi/ipython\">PyPI</a> | <a href=\"https://pyup.io/changelogs/ipython/\">Changelog</a> | <a href=\"https://ipython.org\">Homepage</a> \n\n</td>\n\n</tr>\n</table>\n\n\n\n## Changelogs\n\n\n### Django  -> 2.0.2\n\n>### 2.0.2\n\n>==========================\n\n>*February 1, 2018*\n\n>Django 2.0.2 fixes a security issue and several bugs in 2.0.1.\n\n>CVE-2018-6188: Information leakage in ``AuthenticationForm``\n>============================================================\n\n>A regression in Django 1.11.8 made\n>:class:`~django.contrib.auth.forms.AuthenticationForm` run its\n>``confirm_login_allowed()`` method even if an incorrect password is entered.\n>This can leak information about a user, depending on what messages\n>``confirm_login_allowed()`` raises. If ``confirm_login_allowed()`` isn&#39;t\n>overridden, an attacker enter an arbitrary username and see if that user has\n>been set to ``is_active=False``. If ``confirm_login_allowed()`` is overridden,\n>more sensitive details could be leaked.\n\n>This issue is fixed with the caveat that ``AuthenticationForm`` can no longer\n>raise the &quot;This account is inactive.&quot; error if the authentication backend\n>rejects inactive users (the default authentication backend, ``ModelBackend``,\n>has done that since Django 1.10). This issue will be revisited for Django 2.1\n>as a fix to address the caveat will likely be too invasive for inclusion in\n>older versions.\n\n>Bugfixes\n>========\n\n>* Fixed hidden content at the bottom of the &quot;The install worked successfully!&quot;\n>  page for some languages (:ticket:`28885`).\n\n>* Fixed incorrect foreign key nullification if a model has two foreign keys to\n>  the same model and a target model is deleted (:ticket:`29016`).\n\n>* Fixed regression in the use of ``QuerySet.values_list(..., flat=True)``\n>  followed by ``annotate()`` (:ticket:`29067`).\n\n>* Fixed a regression where a queryset that annotates with geometry objects\n>  crashes (:ticket:`29054`).\n\n>* Fixed a regression where ``contrib.auth.authenticate()`` crashes if an\n>  authentication backend doesn&#39;t accept ``request`` and a later one does\n>  (:ticket:`29071`).\n\n>* Fixed a regression where ``makemigrations`` crashes if a migrations directory\n>  doesn&#39;t have an ``__init__.py`` file (:ticket:`29091`).\n\n>* Fixed crash when entering an invalid uuid in ``ModelAdmin.raw_id_fields``\n>  (:ticket:`29094`).\n\n\n>==========================\n\n\n>### 2.0.1\n\n>==========================\n\n>*January 1, 2018*\n\n>Django 2.0.1 fixes several bugs in 2.0.\n\n>Bugfixes\n>========\n\n>* Fixed a regression in Django 1.11 that added newlines between ``MultiWidget``&#39;s\n>  subwidgets (:ticket:`28890`).\n\n>* Fixed incorrect class-based model index name generation for models with\n>  quoted ``db_table`` (:ticket:`28876`).\n\n>* Fixed incorrect foreign key constraint name for models with quoted\n>  ``db_table`` (:ticket:`28876`).\n\n>* Fixed a regression in caching of a ``GenericForeignKey`` when the referenced\n>  model instance uses more than one level of multi-table inheritance\n>  (:ticket:`28856`).\n\n>* Reallowed filtering a queryset with ``GeometryField=None`` (:ticket:`28896`).\n\n>* Corrected admin check to allow a ``OneToOneField`` in\n>  ``ModelAdmin.autocomplete_fields`` (:ticket:`28898`).\n\n>* Fixed a regression on SQLite where ``DecimalField`` returned a result with\n>  trailing zeros in the fractional part truncated (:ticket:`28915`).\n\n>* Fixed crash in the ``testserver`` command startup (:ticket:`28941`).\n\n>* Fixed crash when coercing a translatable URL pattern to ``str``\n>  (:ticket:`28947`).\n\n>* Fixed crash on SQLite when renaming a field in a model referenced by a\n>  ``ManyToManyField`` (:ticket:`28884`).\n\n>* Fixed a crash when chaining ``values()`` or ``values_list()`` after\n>  ``QuerySet.select_for_update(of=(...))`` (:ticket:`28944`).\n\n>* Fixed admin changelist crash when using a query expression in the page&#39;s\n>  ordering (:ticket:`28958`).\n\n\n>========================\n\n\n>### 2.0\n\n>========================\n\n>*December 2, 2017*\n\n>Welcome to Django 2.0!\n\n>These release notes cover the :ref:`new features &lt;whats-new-2.0&gt;`, as well as\n>some :ref:`backwards incompatible changes &lt;backwards-incompatible-2.0&gt;` you&#39;ll\n>want to be aware of when upgrading from Django 1.11 or earlier. We&#39;ve\n>:ref:`dropped some features&lt;removed-features-2.0&gt;` that have reached the end of\n>their deprecation cycle, and we&#39;ve :ref:`begun the deprecation process for some\n>features &lt;deprecated-features-2.0&gt;`.\n\n>This release starts Django&#39;s use of a :ref:`loose form of semantic versioning\n>&lt;internal-release-cadence&gt;`, but there aren&#39;t any major backwards incompatible\n>changes that might be expected of a 2.0 release. Upgrading should be a similar\n>amount of effort as past feature releases.\n\n>See the :doc:`/howto/upgrade-version` guide if you&#39;re updating an existing\n>project.\n\n>Python compatibility\n>====================\n\n>Django 2.0 supports Python 3.4, 3.5, and 3.6. We **highly recommend** and only\n>officially support the latest release of each series.\n\n>The Django 1.11.x series is the last to support Python 2.7.\n\n>Django 2.0 will be the last release series to support Python 3.4. If you plan\n>a deployment of Python 3.4 beyond the end-of-life for Django 2.0 (April 2019),\n>stick with Django 1.11 LTS (supported until April 2020) instead. Note, however,\n>that the end-of-life for Python 3.4 is March 2019.\n\n>Third-party library support for older version of Django\n>=======================================================\n\n>Following the release of Django 2.0, we suggest that third-party app authors\n>drop support for all versions of Django prior to 1.11. At that time, you should\n>be able to run your package&#39;s tests using ``python -Wd`` so that deprecation\n>warnings do appear. After making the deprecation warning fixes, your app should\n>be compatible with Django 2.0.\n\n>.. _whats-new-2.0:\n\n>What&#39;s new in Django 2.0\n>========================\n\n>Simplified URL routing syntax\n>-----------------------------\n\n>The new :func:`django.urls.path()` function allows a simpler, more readable URL\n>routing syntax. For example, this example from previous Django releases::\n\n>    url(r&#39;^articles/(?P&lt;year&gt;[0-9]{4})/$&#39;, views.year_archive),\n\n>could be written as::\n\n>    path(&#39;articles/&lt;int:year&gt;/&#39;, views.year_archive),\n\n>The new syntax supports type coercion of URL parameters. In the example, the\n>view will receive the ``year`` keyword argument as an integer rather than as\n>a string. Also, the URLs that will match are slightly less constrained in the\n>rewritten example. For example, the year 10000 will now match since the year\n>integers aren&#39;t constrained to be exactly four digits long as they are in the\n>regular expression.\n\n>The ``django.conf.urls.url()`` function from previous versions is now available\n>as :func:`django.urls.re_path`. The old location remains for backwards\n>compatibility, without an imminent deprecation. The old\n>``django.conf.urls.include()`` function is now importable from ``django.urls``\n>so you can use ``from django.urls import include, path, re_path`` in your\n>URLconfs.\n\n>The :doc:`/topics/http/urls` document is rewritten to feature the new syntax\n>and provide more details.\n\n>Mobile-friendly ``contrib.admin``\n>---------------------------------\n\n>The admin is now responsive and supports all major mobile devices. Older\n>browsers may experience varying levels of graceful degradation.\n\n>Window expressions\n>------------------\n\n>The new :class:`~django.db.models.expressions.Window` expression allows\n>adding an ``OVER`` clause to querysets. You can use :ref:`window functions\n>&lt;window-functions&gt;` and :ref:`aggregate functions &lt;aggregation-functions&gt;` in\n>the expression.\n\n>Minor features\n>--------------\n\n>:mod:`django.contrib.admin`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* The new :attr:`.ModelAdmin.autocomplete_fields` attribute and\n>  :meth:`.ModelAdmin.get_autocomplete_fields` method allow using an\n>  `Select2 &lt;https://select2.org&gt;`_ search widget for ``ForeignKey`` and\n>  ``ManyToManyField``.\n\n>:mod:`django.contrib.auth`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* The default iteration count for the PBKDF2 password hasher is increased from\n>  36,000 to 100,000.\n\n>:mod:`django.contrib.gis`\n>~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* Added MySQL support for the\n>  :class:`~django.contrib.gis.db.models.functions.AsGeoJSON` function,\n>  :class:`~django.contrib.gis.db.models.functions.GeoHash` function,\n>  :class:`~django.contrib.gis.db.models.functions.IsValid` function,\n>  :lookup:`isvalid` lookup, and :ref:`distance lookups &lt;distance-lookups&gt;`.\n\n>* Added the :class:`~django.contrib.gis.db.models.functions.Azimuth` and\n>  :class:`~django.contrib.gis.db.models.functions.LineLocatePoint` functions,\n>  supported on PostGIS and SpatiaLite.\n\n>* Any :class:`~django.contrib.gis.geos.GEOSGeometry` imported from GeoJSON now\n>  has its SRID set.\n\n>* Added the :attr:`.OSMWidget.default_zoom` attribute to customize the map&#39;s\n>  default zoom level.\n\n>* Made metadata readable and editable on rasters through the\n>  :attr:`~django.contrib.gis.gdal.GDALRaster.metadata`,\n>  :attr:`~django.contrib.gis.gdal.GDALRaster.info`, and\n>  :attr:`~django.contrib.gis.gdal.GDALBand.metadata` attributes.\n\n>* Allowed passing driver-specific creation options to\n>  :class:`~django.contrib.gis.gdal.GDALRaster` objects using ``papsz_options``.\n\n>* Allowed creating :class:`~django.contrib.gis.gdal.GDALRaster` objects in\n>  GDAL&#39;s internal virtual filesystem. Rasters can now be :ref:`created from and\n>  converted to binary data &lt;gdal-raster-vsimem&gt;` in-memory.\n\n>* The new :meth:`GDALBand.color_interp()\n>  &lt;django.contrib.gis.gdal.GDALBand.color_interp&gt;` method returns the color\n>  interpretation for the band.\n\n>:mod:`django.contrib.postgres`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* The new ``distinct`` argument for\n>  :class:`~django.contrib.postgres.aggregates.ArrayAgg` determines if\n>  concatenated values will be distinct.\n\n>* The new :class:`~django.contrib.postgres.functions.RandomUUID` database\n>  function returns a version 4 UUID. It requires use of PostgreSQL&#39;s\n>  ``pgcrypto`` extension which can be activated using the new\n>  :class:`~django.contrib.postgres.operations.CryptoExtension` migration\n>  operation.\n\n>* :class:`django.contrib.postgres.indexes.GinIndex` now supports the\n>  ``fastupdate`` and ``gin_pending_list_limit`` parameters.\n\n>* The new :class:`~django.contrib.postgres.indexes.GistIndex` class allows\n>  creating ``GiST`` indexes in the database. The new\n>  :class:`~django.contrib.postgres.operations.BtreeGistExtension` migration\n>  operation installs the ``btree_gist`` extension to add support for operator\n>  classes that aren&#39;t built-in.\n\n>* :djadmin:`inspectdb` can now introspect ``JSONField`` and various\n>  ``RangeField``\\s (``django.contrib.postgres`` must be in ``INSTALLED_APPS``).\n\n>:mod:`django.contrib.sitemaps`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* Added the ``protocol`` keyword argument to the\n>  :class:`~django.contrib.sitemaps.GenericSitemap` constructor.\n\n>Cache\n>~~~~~\n\n>* ``cache.set_many()`` now returns a list of keys that failed to be inserted.\n>  For the built-in backends, failed inserts can only happen on memcached.\n\n>File Storage\n>~~~~~~~~~~~~\n\n>* :meth:`File.open() &lt;django.core.files.File.open&gt;` can be used as a context\n>  manager, e.g. ``with file.open() as f:``.\n\n>Forms\n>~~~~~\n\n>* The new ``date_attrs`` and ``time_attrs`` arguments for\n>  :class:`~django.forms.SplitDateTimeWidget` and\n>  :class:`~django.forms.SplitHiddenDateTimeWidget` allow specifying different\n>  HTML attributes for the ``DateInput`` and ``TimeInput`` (or hidden)\n>  subwidgets.\n\n>* The new :meth:`Form.errors.get_json_data()\n>  &lt;django.forms.Form.errors.get_json_data&gt;` method returns form errors as\n>  a dictionary suitable for including in a JSON response.\n\n>Generic Views\n>~~~~~~~~~~~~~\n\n>* The new :attr:`.ContextMixin.extra_context` attribute allows adding context\n>  in ``View.as_view()``.\n\n>Management Commands\n>~~~~~~~~~~~~~~~~~~~\n\n>* :djadmin:`inspectdb` now translates MySQL&#39;s unsigned integer columns to\n>  ``PositiveIntegerField`` or ``PositiveSmallIntegerField``.\n\n>* The new :option:`makemessages --add-location` option controls the comment\n>  format in PO files.\n\n>* :djadmin:`loaddata` can now :ref:`read from stdin &lt;loading-fixtures-stdin&gt;`.\n\n>* The new :option:`diffsettings --output` option allows formatting the output\n>  in a unified diff format.\n\n>* On Oracle, :djadmin:`inspectdb` can now introspect ``AutoField`` if the\n>  column is created as an identity column.\n\n>* On MySQL, :djadmin:`dbshell` now supports client-side TLS certificates.\n\n>Migrations\n>~~~~~~~~~~\n\n>* The new :option:`squashmigrations --squashed-name` option allows naming the\n>  squashed migration.\n\n>Models\n>~~~~~~\n\n>* The new :class:`~django.db.models.functions.StrIndex` database function\n>  finds the starting index of a string inside another string.\n\n>* On Oracle, ``AutoField`` and ``BigAutoField`` are now created as `identity\n>  columns`_.\n\n>  .. _`identity columns`: https://docs.oracle.com/database/121/DRDAA/migr_tools_feat.htmDRDAA109\n\n>* The new ``chunk_size`` parameter of :meth:`.QuerySet.iterator` controls the\n>  number of rows fetched by the Python database client when streaming results\n>  from the database. For databases that don&#39;t support server-side cursors, it\n>  controls the number of results Django fetches from the database adapter.\n\n>* :meth:`.QuerySet.earliest`, :meth:`.QuerySet.latest`, and\n>  :attr:`Meta.get_latest_by &lt;django.db.models.Options.get_latest_by&gt;` now\n>  allow ordering by several fields.\n\n>* Added the :class:`~django.db.models.functions.ExtractQuarter` function to\n>  extract the quarter from :class:`~django.db.models.DateField` and\n>  :class:`~django.db.models.DateTimeField`, and exposed it through the\n>  :lookup:`quarter` lookup.\n\n>* Added the :class:`~django.db.models.functions.TruncQuarter` function to\n>  truncate :class:`~django.db.models.DateField` and\n>  :class:`~django.db.models.DateTimeField` to the first day of a quarter.\n\n>* Added the :attr:`~django.db.models.Index.db_tablespace` parameter to\n>  class-based indexes.\n\n>* If the database supports a native duration field (Oracle and PostgreSQL),\n>  :class:`~django.db.models.functions.Extract` now works with\n>  :class:`~django.db.models.DurationField`.\n\n>* Added the ``of`` argument to :meth:`.QuerySet.select_for_update()`, supported\n>  on PostgreSQL and Oracle, to lock only rows from specific tables rather than\n>  all selected tables. It may be helpful particularly when\n>  :meth:`~.QuerySet.select_for_update()` is used in conjunction with\n>  :meth:`~.QuerySet.select_related()`.\n\n>* The new ``field_name`` parameter of :meth:`.QuerySet.in_bulk` allows fetching\n>  results based on any unique model field.\n\n>* :meth:`.CursorWrapper.callproc()` now takes an optional dictionary of keyword\n>  parameters, if the backend supports this feature. Of Django&#39;s built-in\n>  backends, only Oracle supports it.\n\n>* The new :meth:`connection.execute_wrapper()\n>  &lt;django.db.backends.base.DatabaseWrapper.execute_wrapper&gt;` method allows\n>  :doc:`installing wrappers around execution of database queries\n>  &lt;/topics/db/instrumentation&gt;`.\n\n>* The new ``filter`` argument for built-in aggregates allows :ref:`adding\n>  different conditionals &lt;conditional-aggregation&gt;` to multiple aggregations\n>  over the same fields or relations.\n\n>* Added support for expressions in :attr:`Meta.ordering\n>  &lt;django.db.models.Options.ordering&gt;`.\n\n>* The new ``named`` parameter of :meth:`.QuerySet.values_list` allows fetching\n>  results as named tuples.\n\n>* The new :class:`.FilteredRelation` class allows adding an ``ON`` clause to\n>  querysets.\n\n>Pagination\n>~~~~~~~~~~\n\n>* Added :meth:`Paginator.get_page() &lt;django.core.paginator.Paginator.get_page&gt;`\n>  to provide the documented pattern of handling invalid page numbers.\n\n>Requests and Responses\n>~~~~~~~~~~~~~~~~~~~~~~\n\n>* The :djadmin:`runserver` Web server supports HTTP 1.1.\n\n>Templates\n>~~~~~~~~~\n\n>* To increase the usefulness of :meth:`.Engine.get_default` in third-party\n>  apps, it now returns the first engine if multiple ``DjangoTemplates`` engines\n>  are configured in ``TEMPLATES`` rather than raising ``ImproperlyConfigured``.\n\n>* Custom template tags may now accept keyword-only arguments.\n\n>Tests\n>~~~~~\n\n>* Added threading support to :class:`~django.test.LiveServerTestCase`.\n\n>* Added settings that allow customizing the test tablespace parameters for\n>  Oracle: :setting:`DATAFILE_SIZE`, :setting:`DATAFILE_TMP_SIZE`,\n>  :setting:`DATAFILE_EXTSIZE`, and :setting:`DATAFILE_TMP_EXTSIZE`.\n\n>Validators\n>~~~~~~~~~~\n\n>* The new :class:`.ProhibitNullCharactersValidator` disallows the null\n>  character in the input of the :class:`~django.forms.CharField` form field\n>  and its subclasses. Null character input was observed from vulnerability\n>  scanning tools. Most databases silently discard null characters, but\n>  psycopg2 2.7+ raises an exception when trying to save a null character to\n>  a char/text field with PostgreSQL.\n\n>.. _backwards-incompatible-2.0:\n\n>Backwards incompatible changes in 2.0\n>=====================================\n\n>Removed support for bytestrings in some places\n>----------------------------------------------\n\n>To support native Python 2 strings, older Django versions had to accept both\n>bytestrings and unicode strings. Now that Python 2 support is dropped,\n>bytestrings should only be encountered around input/output boundaries (handling\n>of binary fields or HTTP streams, for example). You might have to update your\n>code to limit bytestring usage to a minimum, as Django no longer accepts\n>bytestrings in certain code paths. Python&#39;s :option:`-b` option may help detect\n>that mistake in your code.\n\n>For example, ``reverse()`` now uses ``str()`` instead of ``force_text()`` to\n>coerce the ``args`` and ``kwargs`` it receives, prior to their placement in\n>the URL. For bytestrings, this creates a string with an undesired ``b`` prefix\n>as well as additional quotes (``str(b&#39;foo&#39;)`` is ``&quot;b&#39;foo&#39;&quot;``). To adapt, call\n>``decode()`` on the bytestring before passing it to ``reverse()``.\n\n>Database backend API\n>--------------------\n\n>This section describes changes that may be needed in third-party database\n>backends.\n\n>* The ``DatabaseOperations.datetime_cast_date_sql()``,\n>  ``datetime_cast_time_sql()``, ``datetime_trunc_sql()``,\n>  ``datetime_extract_sql()``, and ``date_interval_sql()`` methods now return\n>  only the SQL to perform the operation instead of SQL and a list of\n>  parameters.\n\n>* Third-party database backends should add a ``DatabaseWrapper.display_name``\n>  attribute with the name of the database that your backend works with. Django\n>  may use it in various messages, such as in system checks.\n\n>* The first argument of ``SchemaEditor._alter_column_type_sql()`` is now\n>  ``model`` rather than ``table``.\n\n>* The first argument of ``SchemaEditor._create_index_name()`` is now\n>  ``table_name`` rather than ``model``.\n\n>* To enable ``FOR UPDATE OF`` support, set\n>  ``DatabaseFeatures.has_select_for_update_of = True``. If the database\n>  requires that the arguments to ``OF`` be columns rather than tables, set\n>  ``DatabaseFeatures.select_for_update_of_column = True``.\n\n>* To enable support for :class:`~django.db.models.expressions.Window`\n>  expressions, set ``DatabaseFeatures.supports_over_clause`` to ``True``. You\n>  may need to customize the ``DatabaseOperations.window_start_rows_start_end()``\n>  and/or ``window_start_range_start_end()`` methods.\n\n>* Third-party database backends should add a\n>  ``DatabaseOperations.cast_char_field_without_max_length`` attribute with the\n>  database data type that will be used in the\n>  :class:`~django.db.models.functions.Cast` function for a ``CharField`` if the\n>  ``max_length`` argument isn&#39;t provided.\n\n>* The first argument of ``DatabaseCreation._clone_test_db()`` and\n>  ``get_test_db_clone_settings()`` is now ``suffix`` rather\n>  than ``number`` (in case you want to rename the signatures in your backend\n>  for consistency). ``django.test`` also now passes those values as strings\n>  rather than as integers.\n\n>* Third-party database backends should add a\n>  ``DatabaseIntrospection.get_sequences()`` method based on the stub in\n>  ``BaseDatabaseIntrospection``.\n\n>Dropped support for Oracle 11.2\n>-------------------------------\n\n>The end of upstream support for Oracle 11.2 is Dec. 2020. Django 1.11 will be\n>supported until April 2020 which almost reaches this date. Django 2.0\n>officially supports Oracle 12.1+.\n\n>Default MySQL isolation level is read committed\n>-----------------------------------------------\n\n>MySQL&#39;s default isolation level, repeatable read, may cause data loss in\n>typical Django usage. To prevent that and for consistency with other databases,\n>the default isolation level is now read committed. You can use the\n>:setting:`DATABASES` setting to :ref:`use a different isolation level\n>&lt;mysql-isolation-level&gt;`, if needed.\n\n>:attr:`AbstractUser.last_name &lt;django.contrib.auth.models.User.last_name&gt;` ``max_length`` increased to 150\n>----------------------------------------------------------------------------------------------------------\n\n>A migration for :attr:`django.contrib.auth.models.User.last_name` is included.\n>If you have a custom user model inheriting from ``AbstractUser``, you&#39;ll need\n>to generate and apply a database migration for your user model.\n\n>If you want to preserve the 30 character limit for last names, use a custom\n>form::\n\n>    from django.contrib.auth.forms import UserChangeForm\n\n>    class MyUserChangeForm(UserChangeForm):\n>        last_name = forms.CharField(max_length=30, required=False)\n\n>If you wish to keep this restriction in the admin when editing users, set\n>``UserAdmin.form`` to use this form::\n\n>    from django.contrib.auth.admin import UserAdmin\n>    from django.contrib.auth.models import User\n\n>    class MyUserAdmin(UserAdmin):\n>        form = MyUserChangeForm\n\n>    admin.site.unregister(User)\n>    admin.site.register(User, MyUserAdmin)\n\n>``QuerySet.reverse()`` and ``last()`` are prohibited after slicing\n>------------------------------------------------------------------\n\n>Calling ``QuerySet.reverse()`` or ``last()`` on a sliced queryset leads to\n>unexpected results due to the slice being applied after reordering. This is\n>now prohibited, e.g.::\n\n>    &gt;&gt;&gt; Model.objects.all()[:2].reverse()\n>    Traceback (most recent call last):\n>    ...\n>    TypeError: Cannot reverse a query once a slice has been taken.\n\n>Form fields no longer accept optional arguments as positional arguments\n>-----------------------------------------------------------------------\n\n>To help prevent runtime errors due to incorrect ordering of form field\n>arguments, optional arguments of built-in form fields are no longer accepted\n>as positional arguments. For example::\n\n>    forms.IntegerField(25, 10)\n\n>raises an exception and should be replaced with::\n\n>    forms.IntegerField(max_value=25, min_value=10)\n\n>``call_command()`` validates the options it receives\n>----------------------------------------------------\n\n>``call_command()`` now validates that the argument parser of the command being\n>called defines all of the options passed to ``call_command()``.\n\n>For custom management commands that use options not created using\n>``parser.add_argument()``, add a ``stealth_options`` attribute on the command::\n\n>    class MyCommand(BaseCommand):\n>        stealth_options = (&#39;option_name&#39;, ...)\n\n>Indexes no longer accept positional arguments\n>---------------------------------------------\n\n>For example::\n\n>    models.Index([&#39;headline&#39;, &#39;-pub_date&#39;], &#39;index_name&#39;)\n\n>raises an exception and should be replaced with::\n\n>    models.Index(fields=[&#39;headline&#39;, &#39;-pub_date&#39;], name=&#39;index_name&#39;)\n\n>Foreign key constraints are now enabled on SQLite\n>-------------------------------------------------\n\n>This will appear as a backwards-incompatible change (``IntegrityError:\n>FOREIGN KEY constraint failed``) if attempting to save an existing model\n>instance that&#39;s violating a foreign key constraint.\n\n>Foreign keys are now created with ``DEFERRABLE INITIALLY DEFERRED`` instead of\n>``DEFERRABLE IMMEDIATE``. Thus, tables may need to be rebuilt to recreate\n>foreign keys with the new definition, particularly if you&#39;re using a pattern\n>like this::\n\n>    from django.db import transaction\n\n>    with transaction.atomic():\n>        Book.objects.create(author_id=1)\n>        Author.objects.create(id=1)\n\n>If you don&#39;t recreate the foreign key as ``DEFERRED``, the first ``create()``\n>would fail now that foreign key constraints are enforced.\n\n>Backup your database first! After upgrading to Django 2.0, you can then\n>rebuild tables using a script similar to this::\n\n>    from django.apps import apps\n>    from django.db import connection\n\n>    for app in apps.get_app_configs():\n>        for model in app.get_models(include_auto_created=True):\n>            if model._meta.managed and not (model._meta.proxy or model._meta.swapped):\n>                for base in model.__bases__:\n>                    if hasattr(base, &#39;_meta&#39;):\n>                        base._meta.local_many_to_many = []\n>                model._meta.local_many_to_many = []\n>                with connection.schema_editor() as editor:\n>                    editor._remake_table(model)\n\n>This script hasn&#39;t received extensive testing and needs adaption for various\n>cases such as multiple databases. Feel free to contribute improvements.\n\n>In addition, because of a table alteration limitation of SQLite, it&#39;s prohibited\n>to perform :class:`~django.db.migrations.operations.RenameModel` and\n>:class:`~django.db.migrations.operations.RenameField` operations on models or\n>fields referenced by other models in a transaction. In order to allow migrations\n>containing these operations to be applied, you must set the\n>``Migration.atomic`` attribute to ``False``.\n\n>Miscellaneous\n>-------------\n\n>* The ``SessionAuthenticationMiddleware`` class is removed. It provided no\n>  functionality since session authentication is unconditionally enabled in\n>  Django 1.10.\n\n>* The default HTTP error handlers (``handler404``, etc.) are now callables\n>  instead of dotted Python path strings. Django favors callable references\n>  since they provide better performance and debugging experience.\n\n>* :class:`~django.views.generic.base.RedirectView` no longer silences\n>  ``NoReverseMatch`` if the ``pattern_name`` doesn&#39;t exist.\n\n>* When :setting:`USE_L10N` is off, :class:`~django.forms.FloatField` and\n>  :class:`~django.forms.DecimalField` now respect :setting:`DECIMAL_SEPARATOR`\n>  and :setting:`THOUSAND_SEPARATOR` during validation. For example, with the\n>  settings::\n\n>     USE_L10N = False\n>     USE_THOUSAND_SEPARATOR = True\n>     DECIMAL_SEPARATOR = &#39;,&#39;\n>     THOUSAND_SEPARATOR = &#39;.&#39;\n\n>  an input of ``&quot;1.345&quot;`` is now converted to ``1345`` instead of ``1.345``.\n\n>* Subclasses of :class:`~django.contrib.auth.models.AbstractBaseUser` are no\n>  longer required to implement ``get_short_name()`` and ``get_full_name()``.\n>  (The base implementations that raise ``NotImplementedError`` are removed.)\n>  ``django.contrib.admin`` uses these methods if implemented but doesn&#39;t\n>  require them. Third-party apps that use these methods may want to adopt a\n>  similar approach.\n\n>* The ``FIRST_DAY_OF_WEEK`` and ``NUMBER_GROUPING`` format settings are now\n>  kept as integers in JavaScript and JSON i18n view outputs.\n\n>* :meth:`~django.test.TransactionTestCase.assertNumQueries` now ignores\n>  connection configuration queries. Previously, if a test opened a new database\n>  connection, those queries could be included as part of the\n>  ``assertNumQueries()`` count.\n\n>* The default size of the Oracle test tablespace is increased from 20M to 50M\n>  and the default autoextend size is increased from 10M to 25M.\n\n>* To improve performance when streaming large result sets from the database,\n>  :meth:`.QuerySet.iterator` now fetches 2000 rows at a time instead of 100.\n>  The old behavior can be restored using the ``chunk_size`` parameter. For\n>  example::\n\n>      Book.objects.iterator(chunk_size=100)\n\n>* Providing unknown package names in the ``packages`` argument of the\n>  :class:`~django.views.i18n.JavaScriptCatalog` view now raises ``ValueError``\n>  instead of passing silently.\n\n>* A model instance&#39;s primary key now appears in the default ``Model.__str__()``\n>  method, e.g. ``Question object (1)``.\n\n>* ``makemigrations`` now detects changes to the model field ``limit_choices_to``\n>  option. Add this to your existing migrations or accept an auto-generated\n>  migration for fields that use it.\n\n>* Performing queries that require :ref:`automatic spatial transformations\n>  &lt;automatic-spatial-transformations&gt;` now raises ``NotImplementedError``\n>  on MySQL instead of silently using non-transformed geometries.\n\n>* ``django.core.exceptions.DjangoRuntimeWarning`` is removed. It was only used\n>  in the cache backend as an intermediate class in ``CacheKeyWarning``&#39;s\n>  inheritance of ``RuntimeWarning``.\n\n>* Renamed ``BaseExpression._output_field`` to ``output_field``. You may need\n>  to update custom expressions.\n\n>* In older versions, forms and formsets combine their ``Media`` with widget\n>  ``Media`` by concatenating the two. The combining now tries to :ref:`preserve\n>  the relative order of elements in each list &lt;form-media-asset-order&gt;`.\n>  ``MediaOrderConflictWarning`` is issued if the order can&#39;t be preserved.\n\n>* ``django.contrib.gis.gdal.OGRException`` is removed. It&#39;s been an alias for\n>  ``GDALException`` since Django 1.8.\n\n>* Support for GEOS 3.3.x is dropped.\n\n>* The way data is selected for ``GeometryField`` is changed to improve\n>  performance, and in raw SQL queries, those fields must now be wrapped in\n>  ``connection.ops.select``. See the :ref:`Raw queries note&lt;gis-raw-sql&gt;` in\n>  the GIS tutorial for an example.\n\n>.. _deprecated-features-2.0:\n\n>Features deprecated in 2.0\n>==========================\n\n>``context`` argument of ``Field.from_db_value()`` and ``Expression.convert_value()``\n>------------------------------------------------------------------------------------\n\n>The ``context`` argument of ``Field.from_db_value()`` and\n>``Expression.convert_value()`` is unused as it&#39;s always an empty dictionary.\n>The signature of both methods is now::\n\n>    (self, value, expression, connection)\n\n>instead of::\n\n>    (self, value, expression, connection, context)\n\n>Support for the old signature in custom fields and expressions remains until\n>Django 3.0.\n\n>Miscellaneous\n>-------------\n\n>* The ``django.db.backends.postgresql_psycopg2`` module is deprecated in favor\n>  of ``django.db.backends.postgresql``. It&#39;s been an alias since Django 1.9.\n>  This only affects code that imports from the module directly. The\n>  ``DATABASES`` setting can still use\n>  ``&#39;django.db.backends.postgresql_psycopg2&#39;``, though you can simplify that by\n>  using the ``&#39;django.db.backends.postgresql&#39;`` name added in Django 1.9.\n\n>* ``django.shortcuts.render_to_response()`` is deprecated in favor of\n>  :func:`django.shortcuts.render`. ``render()`` takes the same arguments\n>  except that it also requires a ``request``.\n\n>* The ``DEFAULT_CONTENT_TYPE`` setting is deprecated. It doesn&#39;t interact well\n>  well with third-party apps and is obsolete since HTML5 has mostly superseded\n>  XHTML.\n\n>* ``HttpRequest.xreadlines()`` is deprecated in favor of iterating over the\n>  request.\n\n>* The ``field_name`` keyword argument to :meth:`.QuerySet.earliest` and\n>  :meth:`.QuerySet.latest` is deprecated in favor of passing the field\n>  names as arguments. Write ``.earliest(&#39;pub_date&#39;)`` instead of\n>  ``.earliest(field_name=&#39;pub_date&#39;)``.\n\n>.. _removed-features-2.0:\n\n>Features removed in 2.0\n>=======================\n\n>These features have reached the end of their deprecation cycle and are removed\n>in Django 2.0.\n\n>See :ref:`deprecated-features-1.9` for details on these changes, including how\n>to remove usage of these features.\n\n>* The ``weak`` argument to ``django.dispatch.signals.Signal.disconnect()`` is\n>  removed.\n\n>* ``django.db.backends.base.BaseDatabaseOperations.check_aggregate_support()``\n>  is removed.\n\n>* The ``django.forms.extras`` package is removed.\n\n>* The ``assignment_tag`` helper is removed.\n\n>* The ``host`` argument to ``SimpleTestCase.assertsRedirects()`` is removed.\n>  The compatibility layer which allows absolute URLs to be considered equal to\n>  relative ones when the path is identical is also removed.\n\n>* ``Field.rel`` and ``Field.remote_field.to`` are removed.\n\n>* The ``on_delete`` argument for ``ForeignKey`` and ``OneToOneField`` is now\n>  required in models and migrations. Consider squashing migrations so that you\n>  have fewer of them to update.\n\n>* ``django.db.models.fields.add_lazy_relation()`` is removed.\n\n>* When time zone support is enabled, database backends that don&#39;t support time\n>  zones no longer convert aware datetimes to naive values in UTC anymore when\n>  such values are passed as parameters to SQL queries executed outside of the\n>  ORM, e.g. with ``cursor.execute()``.\n\n>* ``django.contrib.auth.tests.utils.skipIfCustomUser()`` is removed.\n\n>* The ``GeoManager`` and ``GeoQuerySet`` classes are removed.\n\n>* The ``django.contrib.gis.geoip`` module is removed.\n\n>* The ``supports_recursion`` check for template loaders is removed from:\n\n>  * ``django.template.engine.Engine.find_template()``\n>  * ``django.template.loader_tags.ExtendsNode.find_template()``\n>  * ``django.template.loaders.base.Loader.supports_recursion()``\n>  * ``django.template.loaders.cached.Loader.supports_recursion()``\n\n>* The ``load_template`` and ``load_template_sources`` template loader methods\n>  are removed.\n\n>* The ``template_dirs`` argument for template loaders is removed:\n\n>  * ``django.template.loaders.base.Loader.get_template()``\n>  * ``django.template.loaders.cached.Loader.cache_key()``\n>  * ``django.template.loaders.cached.Loader.get_template()``\n>  * ``django.template.loaders.cached.Loader.get_template_sources()``\n>  * ``django.template.loaders.filesystem.Loader.get_template_sources()``\n\n>* ``django.template.loaders.base.Loader.__call__()`` is removed.\n\n>* Support for custom error views that don&#39;t accept an ``exception`` parameter\n>  is removed.\n\n>* The ``mime_type`` attribute of ``django.utils.feedgenerator.Atom1Feed`` and\n>  ``django.utils.feedgenerator.RssFeed`` is removed.\n\n>* The ``app_name`` argument to ``include()`` is removed.\n\n>* Support for passing a 3-tuple (including ``admin.site.urls``) as the first\n>  argument to ``include()`` is removed.\n\n>* Support for setting a URL instance namespace without an application namespace\n>  is removed.\n\n>* ``Field._get_val_from_obj()`` is removed.\n\n>* ``django.template.loaders.eggs.Loader`` is removed.\n\n>* The ``current_app`` parameter to the ``contrib.auth`` function-based views is\n>  removed.\n\n>* The ``callable_obj`` keyword argument to\n>  ``SimpleTestCase.assertRaisesMessage()`` is removed.\n\n>* Support for the ``allow_tags`` attribute on ``ModelAdmin`` methods is\n>  removed.\n\n>* The ``enclosure`` keyword argument to ``SyndicationFeed.add_item()`` is\n>  removed.\n\n>* The ``django.template.loader.LoaderOrigin`` and\n>  ``django.template.base.StringOrigin`` aliases for\n>  ``django.template.base.Origin`` are removed.\n\n>See :ref:`deprecated-features-1.10` for details on these changes.\n\n>* The ``makemigrations --exit`` option is removed.\n\n>* Support for direct assignment to a reverse foreign key or many-to-many\n>  relation is removed.\n\n>* The ``get_srid()`` and ``set_srid()`` methods of\n>  ``django.contrib.gis.geos.GEOSGeometry`` are removed.\n\n>* The ``get_x()``, ``set_x()``, ``get_y()``, ``set_y()``, ``get_z()``, and\n>  ``set_z()`` methods of ``django.contrib.gis.geos.Point`` are removed.\n\n>* The ``get_coords()`` and ``set_coords()`` methods of\n>  ``django.contrib.gis.geos.Point`` are removed.\n\n>* The ``cascaded_union`` property of ``django.contrib.gis.geos.MultiPolygon``\n>  is removed.\n\n>* ``django.utils.functional.allow_lazy()`` is removed.\n\n>* The ``shell --plain`` option is removed.\n\n>* The ``django.core.urlresolvers`` module is removed in favor of its new\n>  location, ``django.urls``.\n\n>* ``CommaSeparatedIntegerField`` is removed, except for support in historical\n>  migrations.\n\n>* The template ``Context.has_key()`` method is removed.\n\n>* Support for the ``django.core.files.storage.Storage.accessed_time()``,\n>  ``created_time()``, and ``modified_time()`` methods is removed.\n\n>* Support for query lookups using the model name when\n>  ``Meta.default_related_name`` is set is removed.\n\n>* The MySQL ``__search`` lookup is removed.\n\n>* The shim for supporting custom related manager classes without a\n>  ``_apply_rel_filters()`` method is removed.\n\n>* Using ``User.is_authenticated()`` and ``User.is_anonymous()`` as methods\n>  rather than properties is no longer supported.\n\n>* The ``Model._meta.virtual_fields`` attribute is removed.\n\n>* The keyword arguments ``virtual_only`` in ``Field.contribute_to_class()`` and\n>  ``virtual`` in ``Model._meta.add_field()`` are removed.\n\n>* The ``javascript_catalog()`` and ``json_catalog()`` views are removed.\n\n>* ``django.contrib.gis.utils.precision_wkt()`` is removed.\n\n>* In multi-table inheritance, implicit promotion of a ``OneToOneField`` to a\n>  ``parent_link`` is removed.\n\n>* Support for ``Widget._format_value()`` is removed.\n\n>* ``FileField`` methods ``get_directory_name()`` and ``get_filename()`` are\n>  removed.\n\n>* The ``mark_for_escaping()`` function and the classes it uses: ``EscapeData``,\n>  ``EscapeBytes``, ``EscapeText``, ``EscapeString``, and ``EscapeUnicode`` are\n>  removed.\n\n>* The ``escape`` filter now uses ``django.utils.html.conditional_escape()``.\n\n>* ``Manager.use_for_related_fields`` is removed.\n\n>* Model ``Manager`` inheritance follows MRO inheritance rules. The requirement\n>  to use ``Meta.manager_inheritance_from_future`` to opt-in to the behavior is\n>  removed.\n\n>* Support for old-style middleware using ``settings.MIDDLEWARE_CLASSES`` is\n>  removed.\n\n\n>============================\n\n\n>### 1.11.10\n\n>============================\n\n>*February 1, 2018*\n\n>Django 1.11.10 fixes a security issue and several bugs in 1.11.9.\n\n>CVE-2018-6188: Information leakage in ``AuthenticationForm``\n>============================================================\n\n>A regression in Django 1.11.8 made\n>:class:`~django.contrib.auth.forms.AuthenticationForm` run its\n>``confirm_login_allowed()`` method even if an incorrect password is entered.\n>This can leak information about a user, depending on what messages\n>``confirm_login_allowed()`` raises. If ``confirm_login_allowed()`` isn&#39;t\n>overridden, an attacker enter an arbitrary username and see if that user has\n>been set to ``is_active=False``. If ``confirm_login_allowed()`` is overridden,\n>more sensitive details could be leaked.\n\n>This issue is fixed with the caveat that ``AuthenticationForm`` can no longer\n>raise the &quot;This account is inactive.&quot; error if the authentication backend\n>rejects inactive users (the default authentication backend, ``ModelBackend``,\n>has done that since Django 1.10). This issue will be revisited for Django 2.1\n>as a fix to address the caveat will likely be too invasive for inclusion in\n>older versions.\n\n>Bugfixes\n>========\n\n>* Fixed incorrect foreign key nullification if a model has two foreign keys to\n>  the same model and a target model is deleted (:ticket:`29016`).\n\n>* Fixed a regression where ``contrib.auth.authenticate()`` crashes if an\n>  authentication backend doesn&#39;t accept ``request`` and a later one does\n>  (:ticket:`29071`).\n\n>* Fixed crash when entering an invalid uuid in ``ModelAdmin.raw_id_fields``\n>  (:ticket:`29094`).\n\n\n>===========================\n\n\n>### 1.11.9\n\n>===========================\n\n>*January 1, 2018*\n\n>Django 1.11.9 fixes several bugs in 1.11.8.\n\n>Bugfixes\n>========\n\n>* Fixed a regression in Django 1.11 that added newlines between ``MultiWidget``&#39;s\n>  subwidgets (:ticket:`28890`).\n\n>* Fixed incorrect class-based model index name generation for models with\n>  quoted ``db_table`` (:ticket:`28876`).\n\n>* Fixed incorrect foreign key constraint name for models with quoted\n>  ``db_table`` (:ticket:`28876`).\n\n>* Fixed a regression in caching of a ``GenericForeignKey`` when the referenced\n>  model instance uses more than one level of multi-table inheritance\n>  (:ticket:`28856`).\n\n\n>===========================\n\n\n>### 1.11.8\n\n>===========================\n\n>*December 2, 2017*\n\n>Django 1.11.8 fixes several bugs in 1.11.7.\n\n>Bugfixes\n>========\n\n>* Reallowed, following a regression in Django 1.10, ``AuthenticationForm`` to\n>  raise the inactive user error when using ``ModelBackend`` (:ticket:`28645`).\n\n>* Added support for ``QuerySet.values()`` and ``values_list()`` for\n>  ``union()``, ``difference()``, and ``intersection()`` queries\n>  (:ticket:`28781`).\n\n>* Fixed incorrect index name truncation when using a namespaced ``db_table``\n>  (:ticket:`28792`).\n\n>* Made ``QuerySet.iterator()`` use server-side cursors on PostgreSQL after\n>  ``values()`` and ``values_list()`` (:ticket:`28817`).\n\n>* Fixed crash on SQLite and MySQL when ordering by a filtered subquery that\n>  uses ``nulls_first`` or ``nulls_last`` (:ticket:`28848`).\n\n>* Made query lookups for ``CICharField``, ``CIEmailField``, and ``CITextField``\n>  use a ``citext`` cast (:ticket:`28702`).\n\n>* Fixed a regression in caching of a ``GenericForeignKey`` when the referenced\n>  model instance uses multi-table inheritance (:ticket:`28856`).\n\n>* Fixed &quot;Cannot change column &#39;x&#39;: used in a foreign key constraint&quot; crash on\n>  MySQL with a sequence of ``AlterField`` and/or ``RenameField`` operations in\n>  a migration (:ticket:`28305`).\n\n\n>===========================\n\n\n>### 1.11.7\n\n>===========================\n\n>*November 1, 2017*\n\n>Django 1.11.7 fixes several bugs in 1.11.6.\n\n>Bugfixes\n>========\n\n>* Prevented ``cache.get_or_set()`` from caching ``None`` if the ``default``\n>  argument is a callable that returns ``None`` (:ticket:`28601`).\n\n>* Fixed the Basque ``DATE_FORMAT`` string (:ticket:`28710`).\n\n>* Made ``QuerySet.reverse()`` affect ``nulls_first`` and ``nulls_last``\n>  (:ticket:`28722`).\n\n>* Fixed unquoted table names in ``Subquery`` SQL when using ``OuterRef``\n>  (:ticket:`28689`).\n\n\n>===========================\n\n\n>### 1.11.6\n\n>===========================\n\n>*October 5, 2017*\n\n>Django 1.11.6 fixes several bugs in 1.11.5.\n\n>Bugfixes\n>========\n\n>* Made the ``CharField`` form field convert whitespace-only values to the\n>  ``empty_value`` when ``strip`` is enabled (:ticket:`28555`).\n\n>* Fixed crash when using the name of a model&#39;s autogenerated primary key\n>  (``id``) in an ``Index``&#39;s ``fields`` (:ticket:`28597`).\n\n>* Fixed a regression in Django 1.9 where a custom view error handler such as\n>  ``handler404`` that accesses ``csrf_token`` could cause CSRF verification\n>  failures on other pages (:ticket:`28488`).\n\n\n>===========================\n\n\n>### 1.11.5\n\n>===========================\n\n>*September 5, 2017*\n\n>Django 1.11.5 fixes a security issue and several bugs in 1.11.4.\n\n>CVE-2017-12794: Possible XSS in traceback section of technical 500 debug page\n>=============================================================================\n\n>In older versions, HTML autoescaping was disabled in a portion of the template\n>for the technical 500 debug page. Given the right circumstances, this allowed\n>a cross-site scripting attack. This vulnerability shouldn&#39;t affect most\n>production sites since you shouldn&#39;t run with ``DEBUG = True`` (which makes\n>this page accessible) in your production settings.\n\n>Bugfixes\n>========\n\n>* Fixed GEOS version parsing if the version has a commit hash at the end (new\n>  in GEOS 3.6.2) (:ticket:`28441`).\n\n>* Added compatibility for ``cx_Oracle`` 6 (:ticket:`28498`).\n\n>* Fixed select widget rendering when option values are tuples (:ticket:`28502`).\n\n>* Django 1.11 inadvertently changed the sequence and trigger naming scheme on\n>  Oracle. This causes errors on INSERTs for some tables if\n>  ``&#39;use_returning_into&#39;: False`` is in the ``OPTIONS`` part of ``DATABASES``.\n>  The pre-1.11 naming scheme is now restored. Unfortunately, it necessarily\n>  requires an update to Oracle tables created with Django 1.11.[1-4]. Use the\n>  upgrade script in :ticket:`28451` comment 8 to update sequence and trigger\n>  names to use the pre-1.11 naming scheme.\n\n>* Added POST request support to ``LogoutView``, for equivalence with the\n>  function-based ``logout()`` view (:ticket:`28513`).\n\n>* Omitted ``pages_per_range`` from ``BrinIndex.deconstruct()`` if it&#39;s ``None``\n>  (:ticket:`25809`).\n\n>* Fixed a regression where ``SelectDateWidget`` localized the years in the\n>  select box (:ticket:`28530`).\n\n>* Fixed a regression in 1.11.4 where ``runserver`` crashed with non-Unicode\n>  system encodings on Python 2 + Windows (:ticket:`28487`).\n\n>* Fixed a regression in Django 1.10 where changes to a ``ManyToManyField``\n>  weren&#39;t logged in the admin change history (:ticket:`27998`) and prevented\n>  ``ManyToManyField`` initial data in model forms from being affected by\n>  subsequent model changes (:ticket:`28543`).\n\n>* Fixed non-deterministic results or an ``AssertionError`` crash in some\n>  queries with multiple joins (:ticket:`26522`).\n\n>* Fixed a regression in ``contrib.auth``&#39;s ``login()`` and ``logout()`` views\n>  where they ignored positional arguments (:ticket:`28550`).\n\n\n>===========================\n\n\n>### 1.11.4\n\n>===========================\n\n>*August 1, 2017*\n\n>Django 1.11.4 fixes several bugs in 1.11.3.\n\n>Bugfixes\n>========\n\n>* Fixed a regression in 1.11.3 on Python 2 where non-ASCII ``format`` values\n>  for date/time widgets results in an empty ``value`` in the widget&#39;s HTML\n>  (:ticket:`28355`).\n\n>* Fixed ``QuerySet.union()`` and ``difference()`` when combining with\n>  a queryset raising ``EmptyResultSet`` (:ticket:`28378`).\n\n>* Fixed a regression in pickling of ``LazyObject`` on Python 2 when the wrapped\n>  object doesn&#39;t have ``__reduce__()`` (:ticket:`28389`).\n\n>* Fixed crash in ``runserver``&#39;s ``autoreload`` with Python 2 on Windows with\n>  non-``str`` environment variables (:ticket:`28174`).\n\n>* Corrected ``Field.has_changed()`` to return ``False`` for disabled form\n>  fields: ``BooleanField``, ``MultipleChoiceField``, ``MultiValueField``,\n>  ``FileField``, ``ModelChoiceField``, and ``ModelMultipleChoiceField``.\n\n>* Fixed ``QuerySet.count()`` for ``union()``, ``difference()``, and\n>  ``intersection()`` queries. (:ticket:`28399`).\n\n>* Fixed ``ClearableFileInput`` rendering as a subwidget of ``MultiWidget``\n>  (:ticket:`28414`). Custom ``clearable_file_input.html`` widget templates\n>  will need to adapt for the fact that context values\n>  ``checkbox_name``, ``checkbox_id``, ``is_initial``, ``input_text``,\n>  ``initial_text``, and ``clear_checkbox_label`` are now attributes of\n>  ``widget`` rather than appearing in the top-level context.\n\n>* Fixed queryset crash when using a ``GenericRelation`` to a proxy model\n>  (:ticket:`28418`).\n\n\n>===========================\n\n\n>### 1.11.3\n\n>===========================\n\n>*July 1, 2017*\n\n>Django 1.11.3 fixes several bugs in 1.11.2.\n\n>Bugfixes\n>========\n\n>* Removed an incorrect deprecation warning about a missing ``renderer``\n>  argument if a ``Widget.render()`` method accepts ``**kwargs``\n>  (:ticket:`28265`).\n\n>* Fixed a regression causing ``Model.__init__()`` to crash if a field has an\n>  instance only descriptor (:ticket:`28269`).\n\n>* Fixed an incorrect ``DisallowedModelAdminLookup`` exception when using\n>  a nested reverse relation in ``list_filter`` (:ticket:`28262`).\n\n>* Fixed admin&#39;s ``FieldListFilter.get_queryset()`` crash on invalid input\n>  (:ticket:`28202`).\n\n>* Fixed invalid HTML for a required ``AdminFileWidget`` (:ticket:`28278`).\n\n>* Fixed model initialization to set the name of class-based model indexes\n>  for models that only inherit ``models.Model`` (:ticket:`28282`).\n\n>* Fixed crash in admin&#39;s inlines when a model has an inherited non-editable\n>  primary key (:ticket:`27967`).\n\n>* Fixed ``QuerySet.union()``, ``intersection()``, and ``difference()`` when\n>  combining with an ``EmptyQuerySet`` (:ticket:`28293`).\n\n>* Prevented ``Paginator``’s unordered object list warning from evaluating a\n>  ``QuerySet`` (:ticket:`28284`).\n\n>* Fixed the value of ``redirect_field_name`` in ``LoginView``’s template\n>  context. It&#39;s now an empty string (as it is for the original function-based\n>  ``login()`` view) if the corresponding parameter isn&#39;t sent in a request (in\n>  particular, when the login page is accessed directly) (:ticket:`28229`).\n\n>* Prevented attribute values in the ``django/forms/widgets/attrs.html``\n>  template from being localized so that numeric attributes (e.g. ``max`` and\n>  ``min``) of ``NumberInput`` work correctly (:ticket:`28303`).\n\n>* Removed casting of the option value to a string in the template context of\n>  the ``CheckboxSelectMultiple``, ``NullBooleanSelect``, ``RadioSelect``,\n>  ``SelectMultiple``, and ``Select`` widgets (:ticket:`28176`). In Django\n>  1.11.1, casting was added in Python to avoid localization of numeric values\n>  in Django templates, but this made some use cases more difficult. Casting is\n>  now done in the template using the ``|stringformat:&#39;s&#39;`` filter.\n\n>* Prevented a primary key alteration from adding a foreign key constraint if\n>  ``db_constraint=False`` (:ticket:`28298`).\n\n>* Fixed ``UnboundLocalError`` crash in ``RenameField`` with nonexistent field\n>  (:ticket:`28350`).\n\n>* Fixed a regression preventing a model field&#39;s ``limit_choices_to`` from being\n>  evaluated when a ``ModelForm`` is instantiated (:ticket:`28345`).\n\n\n>===========================\n\n\n>### 1.11.2\n\n>===========================\n\n>*June 1, 2017*\n\n>Django 1.11.2 adds a minor feature and fixes several bugs in 1.11.1. Also, the\n>latest string translations from Transifex are incorporated.\n\n>Minor feature\n>=============\n\n>The new ``LiveServerTestCase.port`` attribute reallows the use case of binding\n>to a specific port following the :ref:`bind to port zero\n>&lt;liveservertestcase-port-zero-change&gt;` change in Django 1.11.\n\n>Bugfixes\n>========\n\n>* Added detection for GDAL 2.1 and 2.0, and removed detection for unsupported\n>  versions 1.7 and 1.8 (:ticket:`28181`).\n\n>* Changed ``contrib.gis`` to raise ``ImproperlyConfigured`` rather than\n>  ``GDALException`` if ``gdal`` isn&#39;t installed, to allow third-party apps to\n>  catch that exception (:ticket:`28178`).\n\n>* Fixed ``django.utils.http.is_safe_url()`` crash on invalid IPv6 URLs\n>  (:ticket:`28142`).\n\n>* Fixed regression causing pickling of model fields to crash (:ticket:`28188`).\n\n>* Fixed ``django.contrib.auth.authenticate()`` when multiple authentication\n>  backends don&#39;t accept a positional ``request`` argument (:ticket:`28207`).\n\n>* Fixed introspection of index field ordering on PostgreSQL (:ticket:`28197`).\n\n>* Fixed a regression where ``Model._state.adding`` wasn&#39;t set correctly on\n>  multi-table inheritance parent models after saving a child model\n>  (:ticket:`28210`).\n\n>* Allowed ``DjangoJSONEncoder`` to serialize\n>  ``django.utils.deprecation.CallableBool`` (:ticket:`28230`).\n\n>* Relaxed the validation added in Django 1.11 of the fields in the ``defaults``\n>  argument of ``QuerySet.get_or_create()`` and ``update_or_create()`` to\n>  reallow settable model properties (:ticket:`28222`).\n\n>* Fixed ``MultipleObjectMixin.paginate_queryset()`` crash on Python 2 if the\n>  ``InvalidPage`` message contains non-ASCII (:ticket:`28204`).\n\n>* Prevented ``Subquery`` from adding an unnecessary ``CAST`` which resulted in\n>  invalid SQL (:ticket:`28199`).\n\n>* Corrected detection of GDAL 2.1 on Windows (:ticket:`28181`).\n\n>* Made date-based generic views return a 404 rather than crash when given an\n>  out of range date (:ticket:`28209`).\n\n>* Fixed a regression where ``file_move_safe()`` crashed when moving files to a\n>  CIFS mount (:ticket:`28170`).\n\n>* Moved the ``ImageField`` file extension validation added in Django 1.11 from\n>  the model field to the form field to reallow the use case of storing images\n>  without an extension (:ticket:`28242`).\n\n\n>===========================\n\n\n>### 1.11.1\n\n>===========================\n\n>*May 6, 2017*\n\n>Django 1.11.1 adds a minor feature and fixes several bugs in 1.11.\n\n>Allowed disabling server-side cursors on PostgreSQL\n>===================================================\n\n>The change in Django 1.11 to make :meth:`.QuerySet.iterator()` use server-side\n>cursors on PostgreSQL prevents running Django with `pgBouncer` in transaction\n>pooling mode. To reallow that, use the :setting:`DISABLE_SERVER_SIDE_CURSORS\n>&lt;DATABASE-DISABLE_SERVER_SIDE_CURSORS&gt;` setting in :setting:`DATABASES`.\n\n>See :ref:`transaction-pooling-server-side-cursors` for more discussion.\n\n>Bugfixes\n>========\n\n>* Made migrations respect ``Index``’s ``name`` argument. If you created a\n>  named index with Django 1.11, ``makemigrations`` will create a migration to\n>  recreate the index with the correct name (:ticket:`28051`).\n\n>* Fixed a crash when using a ``__icontains`` lookup on a ``ArrayField``\n>  (:ticket:`28038`).\n\n>* Fixed a crash when using a two-tuple in ``EmailMessage``’s ``attachments``\n>  argument (:ticket:`28042`).\n\n>* Fixed ``QuerySet.filter()`` crash when it references the name of a\n>  ``OneToOneField`` primary key (:ticket:`28047`).\n\n>* Fixed empty POST data table appearing instead of &quot;No POST data&quot; in HTML debug\n>  page (:ticket:`28079`).\n\n>* Restored ``BoundField``\\s without any ``choices`` evaluating to ``True``\n>  (:ticket:`28058`).\n\n>* Prevented ``SessionBase.cycle_key()`` from losing session data if\n>  ``_session_cache`` isn&#39;t populated (:ticket:`28066`).\n\n>* Fixed layout of ``ReadOnlyPasswordHashWidget`` (used in the admin&#39;s user\n>  change page) (:ticket:`28097`).\n\n>* Allowed prefetch calls on managers with custom ``ModelIterable`` subclasses\n>  (:ticket:`28096`).\n\n>* Fixed change password link in the ``contrib.auth`` admin for ``el``,\n>  ``es_MX``, and ``pt`` translations (:ticket:`28100`).\n\n>* Restored the output of the ``class`` attribute in the ``&lt;ul&gt;`` of widgets\n>  that use the ``multiple_input.html`` template. This fixes\n>  ``ModelAdmin.radio_fields`` with ``admin.HORIZONTAL`` (:ticket:`28059`).\n\n>* Fixed crash in ``BaseGeometryWidget.subwidgets()`` (:ticket:`28039`).\n\n>* Fixed exception reraising in ORM query execution when ``cursor.execute()``\n>  fails and the subsequent ``cursor.close()`` also fails (:ticket:`28091`).\n\n>* Fixed a regression where ``CheckboxSelectMultiple``, ``NullBooleanSelect``,\n>  ``RadioSelect``, ``SelectMultiple``, and ``Select`` localized option values\n>  (:ticket:`28075`).\n\n>* Corrected the stack level of unordered queryset pagination warnings\n>  (:ticket:`28109`).\n\n>* Fixed a regression causing incorrect queries for ``__in`` subquery lookups\n>  when models use ``ForeignKey.to_field`` (:ticket:`28101`).\n\n>* Fixed crash when overriding the template of\n>  ``django.views.static.directory_index()`` (:ticket:`28122`).\n\n>* Fixed a regression in formset ``min_num`` validation with unchanged forms\n>  that have initial data (:ticket:`28130`).\n\n>* Prepared for ``cx_Oracle`` 6.0 support (:ticket:`28138`).\n\n>* Updated the ``contrib.postgres`` ``SplitArrayWidget`` to use template-based\n>  widget rendering (:ticket:`28040`).\n\n>* Fixed crash in ``BaseGeometryWidget.get_context()`` when overriding existing\n>  ``attrs`` (:ticket:`28105`).\n\n>* Prevented ``AddIndex`` and ``RemoveIndex`` from mutating model state\n>  (:ticket:`28043`).\n\n>* Prevented migrations from dropping database indexes from ``Meta.indexes``\n>  when changing ``Field.db_index`` to ``False`` (:ticket:`28052`).\n\n>* Fixed a regression in choice ordering in form fields with grouped and\n>  non-grouped options (:ticket:`28157`).\n\n>* Fixed crash in  ``BaseInlineFormSet._construct_form()`` when using\n>  ``save_as_new`` (:ticket:`28159`).\n\n>* Fixed a regression where ``Model._state.db`` wasn&#39;t set correctly on\n>  multi-table inheritance parent models after saving a child model\n>  (:ticket:`28166`).\n\n>* Corrected the return type of ``ArrayField(CITextField())`` values retrieved\n>  from the database (:ticket:`28161`).\n\n>* Fixed ``QuerySet.prefetch_related()`` crash when fetching relations in nested\n>  ``Prefetch`` objects (:ticket:`27554`).\n\n>* Prevented hiding GDAL errors if it&#39;s not installed when using ``contrib.gis``\n>  (:ticket:`28160`). (It&#39;s a required dependency as of Django 1.11.)\n\n>* Fixed a regression causing ``__in`` lookups on a foreign key to fail when\n>  using the foreign key&#39;s parent model as the lookup value (:ticket:`28175`).\n\n\n>=========================\n\n\n>### 1.11\n\n>=========================\n\n>*April 4, 2017*\n\n>Welcome to Django 1.11!\n\n>These release notes cover the :ref:`new features &lt;whats-new-1.11&gt;`, as well as\n>some :ref:`backwards incompatible changes &lt;backwards-incompatible-1.11&gt;` you&#39;ll\n>want to be aware of when upgrading from Django 1.10 or older versions. We&#39;ve\n>:ref:`begun the deprecation process for some features\n>&lt;deprecated-features-1.11&gt;`.\n\n>See the :doc:`/howto/upgrade-version` guide if you&#39;re updating an existing\n>project.\n\n>Django 1.11 is designated as a :term:`long-term support release`. It will\n>receive security updates for at least three years after its release. Support\n>for the previous LTS, Django 1.8, will end in April 2018.\n\n>Python compatibility\n>====================\n\n>Django 1.11 requires Python 2.7, 3.4, 3.5, or 3.6. Django 1.11 is the first\n>release to support Python 3.6. We **highly recommend** and only officially\n>support the latest release of each series.\n\n>The Django 1.11.x series is the last to support Python 2. The next major\n>release, Django 2.0, will only support Python 3.4+.\n\n>Deprecating warnings are no longer loud by default\n>==================================================\n\n>Unlike older versions of Django, Django&#39;s own deprecation warnings are no\n>longer displayed by default. This is consistent with Python&#39;s default behavior.\n\n>This change allows third-party apps to support both Django 1.11 LTS and Django\n>1.8 LTS without having to add code to avoid deprecation warnings.\n\n>Following the release of Django 2.0, we suggest that third-party app authors\n>drop support for all versions of Django prior to 1.11. At that time, you should\n>be able run your package&#39;s tests using ``python -Wd`` so that deprecation\n>warnings do appear. After making the deprecation warning fixes, your app should\n>be compatible with Django 2.0.\n\n>.. _whats-new-1.11:\n\n>What&#39;s new in Django 1.11\n>=========================\n\n>Class-based model indexes\n>-------------------------\n\n>The new :mod:`django.db.models.indexes` module contains classes which ease\n>creating database indexes. Indexes are added to models using the\n>:attr:`Meta.indexes &lt;django.db.models.Options.indexes&gt;` option.\n\n>The :class:`~django.db.models.Index` class creates a b-tree index, as if you\n>used :attr:`~django.db.models.Field.db_index` on the model field or\n>:attr:`~django.db.models.Options.index_together` on the model ``Meta`` class.\n>It can be subclassed to support different index types, such as\n>:class:`~django.contrib.postgres.indexes.GinIndex`. It also allows defining the\n>order (ASC/DESC) for the columns of the index.\n\n>Template-based widget rendering\n>-------------------------------\n\n>To ease customizing widgets, form widget rendering is now done using the\n>template system rather than in Python. See :doc:`/ref/forms/renderers`.\n\n>You may need to adjust any custom widgets that you&#39;ve written for a few\n>:ref:`backwards incompatible changes &lt;template-widget-incompatibilities-1-11&gt;`.\n\n>``Subquery`` expressions\n>------------------------\n\n>The new :class:`~django.db.models.Subquery` and\n>:class:`~django.db.models.Exists` database expressions allow creating\n>explicit subqueries. Subqueries may refer to fields from the outer queryset\n>using the :class:`~django.db.models.OuterRef` class.\n\n>Minor features\n>--------------\n\n>:mod:`django.contrib.admin`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* :attr:`.ModelAdmin.date_hierarchy` can now reference fields across relations.\n\n>* The new :meth:`ModelAdmin.get_exclude()\n>  &lt;django.contrib.admin.ModelAdmin.get_exclude&gt;` hook allows specifying the\n>  exclude fields based on the request or model instance.\n\n>* The ``popup_response.html`` template can now be overridden per app, per\n>  model, or by setting the :attr:`.ModelAdmin.popup_response_template`\n>  attribute.\n\n>:mod:`django.contrib.auth`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* The default iteration count for the PBKDF2 password hasher is increased by\n>  20%.\n\n>* The :class:`~django.contrib.auth.views.LoginView` and\n>  :class:`~django.contrib.auth.views.LogoutView` class-based views supersede the\n>  deprecated ``login()`` and ``logout()`` function-based views.\n\n>* The :class:`~django.contrib.auth.views.PasswordChangeView`,\n>  :class:`~django.contrib.auth.views.PasswordChangeDoneView`,\n>  :class:`~django.contrib.auth.views.PasswordResetView`,\n>  :class:`~django.contrib.auth.views.PasswordResetDoneView`,\n>  :class:`~django.contrib.auth.views.PasswordResetConfirmView`, and\n>  :class:`~django.contrib.auth.views.PasswordResetCompleteView` class-based\n>  views supersede the deprecated ``password_change()``,\n>  ``password_change_done()``, ``password_reset()``, ``password_reset_done()``,\n>  ``password_reset_confirm()``, and ``password_reset_complete()`` function-based\n>  views.\n\n>* The new ``post_reset_login`` attribute for\n>  :class:`~django.contrib.auth.views.PasswordResetConfirmView` allows\n>  automatically logging in a user after a successful password reset.\n>  If you have multiple ``AUTHENTICATION_BACKENDS`` configured, use the\n>  ``post_reset_login_backend`` attribute to choose which one to use.\n\n>* To avoid the possibility of leaking a password reset token via the HTTP\n>  Referer header (for example, if the reset page includes a reference to CSS or\n>  JavaScript hosted on another domain), the\n>  :class:`~django.contrib.auth.views.PasswordResetConfirmView` (but not the\n>  deprecated ``password_reset_confirm()`` function-based view) stores the token\n>  in a session and redirects to itself to present the password change form to\n>  the user without the token in the URL.\n\n>* :func:`~django.contrib.auth.update_session_auth_hash` now rotates the session\n>  key to allow a password change to invalidate stolen session cookies.\n\n>* The new ``success_url_allowed_hosts`` attribute for\n>  :class:`~django.contrib.auth.views.LoginView` and\n>  :class:`~django.contrib.auth.views.LogoutView` allows specifying a set of\n>  hosts that are safe for redirecting after login and logout.\n\n>* Added password validators ``help_text`` to\n>  :class:`~django.contrib.auth.forms.UserCreationForm`.\n\n>* The ``HttpRequest`` is now passed to :func:`~django.contrib.auth.authenticate`\n>  which in turn passes it to the authentication backend if it accepts a\n>  ``request`` argument.\n\n>* The :func:`~django.contrib.auth.signals.user_login_failed` signal now\n>  receives a ``request`` argument.\n\n>* :class:`~django.contrib.auth.forms.PasswordResetForm` supports custom user\n>  models that use an email field named something other than ``&#39;email&#39;``.\n>  Set :attr:`CustomUser.EMAIL_FIELD\n>  &lt;django.contrib.auth.models.CustomUser.EMAIL_FIELD&gt;` to the name of the field.\n\n>* :func:`~django.contrib.auth.get_user_model` can now be called at import time,\n>  even in modules that define models.\n\n>:mod:`django.contrib.contenttypes`\n>~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* When stale content types are detected in the\n>  :djadmin:`remove_stale_contenttypes` command, there&#39;s now a list of related\n>  objects such as ``auth.Permission``\\s that will also be deleted. Previously,\n>  only the content types were listed (and this prompt was after ``migrate``\n>  rather than in a separate command).\n\n>:mod:`django.contrib.gis`\n>~~~~~~~~~~~~~~~~~~~~~~~~~\n\n>* The new :meth:`.GEOSGeometry.from_gml` and :meth:`.OGRGeometry.from_gml`\n>  methods allow creating geometries from GML.\n\n>* Added support for the :lookup:`dwithin` lookup on SpatiaLite.\n\n>* The :class:`~django.contrib.gis.db.models.functions.Area` function,\n>  :class:`~django.contrib.gis.db.models.functions.Distance` function, and\n>  distance lookups now work with geodetic coordinates on Spatia","created_at":"2018-03-04T12:20:14Z","updated_at":"2018-11-01T15:29:20Z","closed_at":"2018-11-01T15:29:20Z","merged_at":null,"merge_commit_sha":"a2b31d40c4de9c3fa18a62a8174f4bd72121057a","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/edoburu/django-project-template/pulls/25/commits","review_comments_url":"https://api.github.com/repos/edoburu/django-project-template/pulls/25/comments","review_comment_url":"https://api.github.com/repos/edoburu/django-project-template/pulls/comments{/number}","comments_url":"https://api.github.com/repos/edoburu/django-project-template/issues/25/comments","statuses_url":"https://api.github.com/repos/edoburu/django-project-template/statuses/5ab842c66cece2dcd7252e13e68e339f8e5428cb","head":{"label":"edoburu:pyup/scheduled-update-2018-03-04","ref":"pyup/scheduled-update-2018-03-04","sha":"5ab842c66cece2dcd7252e13e68e339f8e5428cb","user":{"login":"edoburu","id":738973,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczODk3Mw==","avatar_url":"https://avatars1.githubusercontent.com/u/738973?v=4","gravatar_id":"","url":"https://api.github.com/users/edoburu","html_url":"https://github.com/edoburu","followers_url":"https://api.github.com/users/edoburu/followers","following_url":"https://api.github.com/users/edoburu/following{/other_user}","gists_url":"https://api.github.com/users/edoburu/gists{/gist_id}","starred_url":"https://api.github.com/users/edoburu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edoburu/subscriptions","organizations_url":"https://api.github.com/users/edoburu/orgs","repos_url":"https://api.github.com/users/edoburu/repos","events_url":"https://api.github.com/users/edoburu/events{/privacy}","received_events_url":"https://api.github.com/users/edoburu/received_events","type":"Organization","site_admin":false},"repo":{"id":6787676,"node_id":"MDEwOlJlcG9zaXRvcnk2Nzg3Njc2","name":"django-project-template","full_name":"edoburu/django-project-template","private":false,"owner":{"login":"edoburu","id":738973,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczODk3Mw==","avatar_url":"https://avatars1.githubusercontent.com/u/738973?v=4","gravatar_id":"","url":"https://api.github.com/users/edoburu","html_url":"https://github.com/edoburu","followers_url":"https://api.github.com/users/edoburu/followers","following_url":"https://api.github.com/users/edoburu/following{/other_user}","gists_url":"https://api.github.com/users/edoburu/gists{/gist_id}","starred_url":"https://api.github.com/users/edoburu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edoburu/subscriptions","organizations_url":"https://api.github.com/users/edoburu/orgs","repos_url":"https://api.github.com/users/edoburu/repos","events_url":"https://api.github.com/users/edoburu/events{/privacy}","received_events_url":"https://api.github.com/users/edoburu/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/edoburu/django-project-template","description":"Django project layout to quickly start build fantastic websites! (included npm, libsass, frontend setup and base Django apps)","fork":false,"url":"https://api.github.com/repos/edoburu/django-project-template","forks_url":"https://api.github.com/repos/edoburu/django-project-template/forks","keys_url":"https://api.github.com/repos/edoburu/django-project-template/keys{/key_id}","collaborators_url":"https://api.github.com/repos/edoburu/django-project-template/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/edoburu/django-project-template/teams","hooks_url":"https://api.github.com/repos/edoburu/django-project-template/hooks","issue_events_url":"https://api.github.com/repos/edoburu/django-project-template/issues/events{/number}","events_url":"https://api.github.com/repos/edoburu/django-project-template/events","assignees_url":"https://api.github.com/repos/edoburu/django-project-template/assignees{/user}","branches_url":"https://api.github.com/repos/edoburu/django-project-template/branches{/branch}","tags_url":"https://api.github.com/repos/edoburu/django-project-template/tags","blobs_url":"https://api.github.com/repos/edoburu/django-project-template/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/edoburu/django-project-template/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/edoburu/django-project-template/git/refs{/sha}","trees_url":"https://api.github.com/repos/edoburu/django-project-template/git/trees{/sha}","statuses_url":"https://api.github.com/repos/edoburu/django-project-template/statuses/{sha}","languages_url":"https://api.github.com/repos/edoburu/django-project-template/languages","stargazers_url":"https://api.github.com/repos/edoburu/django-project-template/stargazers","contributors_url":"https://api.github.com/repos/edoburu/django-project-template/contributors","subscribers_url":"https://api.github.com/repos/edoburu/django-project-template/subscribers","subscription_url":"https://api.github.com/repos/edoburu/django-project-template/subscription","commits_url":"https://api.github.com/repos/edoburu/django-project-template/commits{/sha}","git_commits_url":"https://api.github.com/repos/edoburu/django-project-template/git/commits{/sha}","comments_url":"https://api.github.com/repos/edoburu/django-project-template/comments{/number}","issue_comment_url":"https://api.github.com/repos/edoburu/django-project-template/issues/comments{/number}","contents_url":"https://api.github.com/repos/edoburu/django-project-template/contents/{+path}","compare_url":"https://api.github.com/repos/edoburu/django-project-template/compare/{base}...{head}","merges_url":"https://api.github.com/repos/edoburu/django-project-template/merges","archive_url":"https://api.github.com/repos/edoburu/django-project-template/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/edoburu/django-project-template/downloads","issues_url":"https://api.github.com/repos/edoburu/django-project-template/issues{/number}","pulls_url":"https://api.github.com/repos/edoburu/django-project-template/pulls{/number}","milestones_url":"https://api.github.com/repos/edoburu/django-project-template/milestones{/number}","notifications_url":"https://api.github.com/repos/edoburu/django-project-template/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/edoburu/django-project-template/labels{/name}","releases_url":"https://api.github.com/repos/edoburu/django-project-template/releases{/id}","deployments_url":"https://api.github.com/repos/edoburu/django-project-template/deployments","created_at":"2012-11-21T00:30:13Z","updated_at":"2018-10-31T16:26:10Z","pushed_at":"2018-11-01T15:29:15Z","git_url":"git://github.com/edoburu/django-project-template.git","ssh_url":"git@github.com:edoburu/django-project-template.git","clone_url":"https://github.com/edoburu/django-project-template.git","svn_url":"https://github.com/edoburu/django-project-template","homepage":"","size":477,"stargazers_count":64,"watchers_count":64,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":27,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":27,"open_issues":1,"watchers":64,"default_branch":"master"}},"base":{"label":"edoburu:master","ref":"master","sha":"82fa5a6589d1534a9bfaa977decdc2931532a403","user":{"login":"edoburu","id":738973,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczODk3Mw==","avatar_url":"https://avatars1.githubusercontent.com/u/738973?v=4","gravatar_id":"","url":"https://api.github.com/users/edoburu","html_url":"https://github.com/edoburu","followers_url":"https://api.github.com/users/edoburu/followers","following_url":"https://api.github.com/users/edoburu/following{/other_user}","gists_url":"https://api.github.com/users/edoburu/gists{/gist_id}","starred_url":"https://api.github.com/users/edoburu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edoburu/subscriptions","organizations_url":"https://api.github.com/users/edoburu/orgs","repos_url":"https://api.github.com/users/edoburu/repos","events_url":"https://api.github.com/users/edoburu/events{/privacy}","received_events_url":"https://api.github.com/users/edoburu/received_events","type":"Organization","site_admin":false},"repo":{"id":6787676,"node_id":"MDEwOlJlcG9zaXRvcnk2Nzg3Njc2","name":"django-project-template","full_name":"edoburu/django-project-template","private":false,"owner":{"login":"edoburu","id":738973,"node_id":"MDEyOk9yZ2FuaXphdGlvbjczODk3Mw==","avatar_url":"https://avatars1.githubusercontent.com/u/738973?v=4","gravatar_id":"","url":"https://api.github.com/users/edoburu","html_url":"https://github.com/edoburu","followers_url":"https://api.github.com/users/edoburu/followers","following_url":"https://api.github.com/users/edoburu/following{/other_user}","gists_url":"https://api.github.com/users/edoburu/gists{/gist_id}","starred_url":"https://api.github.com/users/edoburu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/edoburu/subscriptions","organizations_url":"https://api.github.com/users/edoburu/orgs","repos_url":"https://api.github.com/users/edoburu/repos","events_url":"https://api.github.com/users/edoburu/events{/privacy}","received_events_url":"https://api.github.com/users/edoburu/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/edoburu/django-project-template","description":"Django project layout to quickly start build fantastic websites! (included npm, libsass, frontend setup and base Django apps)","fork":false,"url":"https://api.github.com/repos/edoburu/django-project-template","forks_url":"https://api.github.com/repos/edoburu/django-project-template/forks","keys_url":"https://api.github.com/repos/edoburu/django-project-template/keys{/key_id}","collaborators_url":"https://api.github.com/repos/edoburu/django-project-template/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/edoburu/django-project-template/teams","hooks_url":"https://api.github.com/repos/edoburu/django-project-template/hooks","issue_events_url":"https://api.github.com/repos/edoburu/django-project-template/issues/events{/number}","events_url":"https://api.github.com/repos/edoburu/django-project-template/events","assignees_url":"https://api.github.com/repos/edoburu/django-project-template/assignees{/user}","branches_url":"https://api.github.com/repos/edoburu/django-project-template/branches{/branch}","tags_url":"https://api.github.com/repos/edoburu/django-project-template/tags","blobs_url":"https://api.github.com/repos/edoburu/django-project-template/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/edoburu/django-project-template/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/edoburu/django-project-template/git/refs{/sha}","trees_url":"https://api.github.com/repos/edoburu/django-project-template/git/trees{/sha}","statuses_url":"https://api.github.com/repos/edoburu/django-project-template/statuses/{sha}","languages_url":"https://api.github.com/repos/edoburu/django-project-template/languages","stargazers_url":"https://api.github.com/repos/edoburu/django-project-template/stargazers","contributors_url":"https://api.github.com/repos/edoburu/django-project-template/contributors","subscribers_url":"https://api.github.com/repos/edoburu/django-project-template/subscribers","subscription_url":"https://api.github.com/repos/edoburu/django-project-template/subscription","commits_url":"https://api.github.com/repos/edoburu/django-project-template/commits{/sha}","git_commits_url":"https://api.github.com/repos/edoburu/django-project-template/git/commits{/sha}","comments_url":"https://api.github.com/repos/edoburu/django-project-template/comments{/number}","issue_comment_url":"https://api.github.com/repos/edoburu/django-project-template/issues/comments{/number}","contents_url":"https://api.github.com/repos/edoburu/django-project-template/contents/{+path}","compare_url":"https://api.github.com/repos/edoburu/django-project-template/compare/{base}...{head}","merges_url":"https://api.github.com/repos/edoburu/django-project-template/merges","archive_url":"https://api.github.com/repos/edoburu/django-project-template/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/edoburu/django-project-template/downloads","issues_url":"https://api.github.com/repos/edoburu/django-project-template/issues{/number}","pulls_url":"https://api.github.com/repos/edoburu/django-project-template/pulls{/number}","milestones_url":"https://api.github.com/repos/edoburu/django-project-template/milestones{/number}","notifications_url":"https://api.github.com/repos/edoburu/django-project-template/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/edoburu/django-project-template/labels{/name}","releases_url":"https://api.github.com/repos/edoburu/django-project-template/releases{/id}","deployments_url":"https://api.github.com/repos/edoburu/django-project-template/deployments","created_at":"2012-11-21T00:30:13Z","updated_at":"2018-10-31T16:26:10Z","pushed_at":"2018-11-01T15:29:15Z","git_url":"git://github.com/edoburu/django-project-template.git","ssh_url":"git@github.com:edoburu/django-project-template.git","clone_url":"https://github.com/edoburu/django-project-template.git","svn_url":"https://github.com/edoburu/django-project-template","homepage":"","size":477,"stargazers_count":64,"watchers_count":64,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":27,"mirror_url":null,"archived":false,"open_issues_count":1,"license":null,"forks":27,"open_issues":1,"watchers":64,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/edoburu/django-project-template/pulls/25"},"html":{"href":"https://github.com/edoburu/django-project-template/pull/25"},"issue":{"href":"https://api.github.com/repos/edoburu/django-project-template/issues/25"},"comments":{"href":"https://api.github.com/repos/edoburu/django-project-template/issues/25/comments"},"review_comments":{"href":"https://api.github.com/repos/edoburu/django-project-template/pulls/25/comments"},"review_comment":{"href":"https://api.github.com/repos/edoburu/django-project-template/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/edoburu/django-project-template/pulls/25/commits"},"statuses":{"href":"https://api.github.com/repos/edoburu/django-project-template/statuses/5ab842c66cece2dcd7252e13e68e339f8e5428cb"}},"author_association":"COLLABORATOR","merged":false,"mergeable":false,"rebaseable":false,"mergeable_state":"dirty","merged_by":null,"comments":1,"review_comments":0,"maintainer_can_modify":false,"commits":2,"additions":2,"deletions":2,"changed_files":2}}
{"actor":{"display_login":"pyup-bot"}}