{"action":"created","issue":{"url":"https://api.github.com/repos/paulfurley/expirybot-web/issues/4","repository_url":"https://api.github.com/repos/paulfurley/expirybot-web","labels_url":"https://api.github.com/repos/paulfurley/expirybot-web/issues/4/labels{/name}","comments_url":"https://api.github.com/repos/paulfurley/expirybot-web/issues/4/comments","events_url":"https://api.github.com/repos/paulfurley/expirybot-web/issues/4/events","html_url":"https://github.com/paulfurley/expirybot-web/pull/4","id":335484785,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk3MTcyNjQy","number":4,"title":"Scheduled weekly dependency update for week 25","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},"labels":[],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":null,"comments":0,"created_at":"2018-06-25T16:43:11Z","updated_at":"2018-07-02T16:43:12Z","closed_at":null,"author_association":"CONTRIBUTOR","pull_request":{"url":"https://api.github.com/repos/paulfurley/expirybot-web/pulls/4","html_url":"https://github.com/paulfurley/expirybot-web/pull/4","diff_url":"https://github.com/paulfurley/expirybot-web/pull/4.diff","patch_url":"https://github.com/paulfurley/expirybot-web/pull/4.patch"},"body":"\n\n\n\n\n### Update [Django](https://pypi.org/project/Django) from **1.11** to **1.11.13**.\n\n\n<details>\n  <summary>Changelog</summary>\n  \n  \n   ### 1.11.13\n   ```\n   ============================\n\n*May 1, 2018*\n\nDjango 1.11.13 fixes several bugs in 1.11.12.\n\nBugfixes\n========\n\n* Fixed a regression in Django 1.11.8 where altering a field with a unique\n  constraint may drop and rebuild more foreign keys than necessary\n  (:ticket:`29193`).\n\n* Fixed crashes in ``django.contrib.admindocs`` when a view is a callable\n  object, such as ``django.contrib.syndication.views.Feed`` (:ticket:`29296`).\n\n* Fixed a regression in Django 1.11.12 where ``QuerySet.values()`` or\n  ``values_list()`` after combining an annotated and unannotated queryset with\n  ``union()``, ``difference()``, or ``intersection()`` crashed due to mismatching\n  columns (:ticket:`29286`).\n\n\n============================\n   ```\n   \n  \n  \n   ### 1.11.12\n   ```\n   ============================\n\n*April 2, 2018*\n\nDjango 1.11.12 fixes two bugs in 1.11.11.\n\nBugfixes\n========\n\n* Fixed a regression in Django 1.11.8 where combining two annotated\n  ``values_list()`` querysets with ``union()``, ``difference()``, or\n  ``intersection()`` crashed due to mismatching columns (:ticket:`29229`).\n\n* Fixed a regression in Django 1.11 where an empty choice could be initially\n  selected for the ``SelectMultiple`` and ``CheckboxSelectMultiple`` widgets\n  (:ticket:`29273`).\n\n\n============================\n   ```\n   \n  \n  \n   ### 1.11.11\n   ```\n   ============================\n\n*March 6, 2018*\n\nDjango 1.11.11 fixes two security issues in 1.11.10.\n\nCVE-2018-7536: Denial-of-service possibility in ``urlize`` and ``urlizetrunc`` template filters\n===============================================================================================\n\nThe ``django.utils.html.urlize()`` function was extremely slow to evaluate\ncertain inputs due to catastrophic backtracking vulnerabilities in two regular\nexpressions. The ``urlize()`` function is used to implement the ``urlize`` and\n``urlizetrunc`` template filters, which were thus vulnerable.\n\nThe problematic regular expressions are replaced with parsing logic that\nbehaves similarly.\n\nCVE-2018-7537: Denial-of-service possibility in ``truncatechars_html`` and ``truncatewords_html`` template filters\n==================================================================================================================\n\nIf ``django.utils.text.Truncator``&#39;s ``chars()`` and ``words()`` methods were\npassed the ``html=True`` argument, they were extremely slow to evaluate certain\ninputs due to a catastrophic backtracking vulnerability in a regular\nexpression. The ``chars()`` and ``words()`` methods are used to implement the\n``truncatechars_html`` and ``truncatewords_html`` template filters, which were\nthus vulnerable.\n\nThe backtracking problem in the regular expression is fixed.\n\n\n============================\n   ```\n   \n  \n  \n   ### 1.11.10\n   ```\n   ============================\n\n*February 1, 2018*\n\nDjango 1.11.10 fixes a security issue and several bugs in 1.11.9.\n\nCVE-2018-6188: Information leakage in ``AuthenticationForm``\n============================================================\n\nA 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.\nThis can leak information about a user, depending on what messages\n``confirm_login_allowed()`` raises. If ``confirm_login_allowed()`` isn&#39;t\noverridden, an attacker enter an arbitrary username and see if that user has\nbeen set to ``is_active=False``. If ``confirm_login_allowed()`` is overridden,\nmore sensitive details could be leaked.\n\nThis issue is fixed with the caveat that ``AuthenticationForm`` can no longer\nraise the &quot;This account is inactive.&quot; error if the authentication backend\nrejects inactive users (the default authentication backend, ``ModelBackend``,\nhas done that since Django 1.10). This issue will be revisited for Django 2.1\nas a fix to address the caveat will likely be too invasive for inclusion in\nolder versions.\n\nBugfixes\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  \n  \n   ### 1.11.9\n   ```\n   ===========================\n\n*January 1, 2018*\n\nDjango 1.11.9 fixes several bugs in 1.11.8.\n\nBugfixes\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  \n  \n   ### 1.11.8\n   ```\n   ===========================\n\n*December 2, 2017*\n\nDjango 1.11.8 fixes several bugs in 1.11.7.\n\nBugfixes\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  \n  \n   ### 1.11.7\n   ```\n   ===========================\n\n*November 1, 2017*\n\nDjango 1.11.7 fixes several bugs in 1.11.6.\n\nBugfixes\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  \n  \n   ### 1.11.6\n   ```\n   ===========================\n\n*October 5, 2017*\n\nDjango 1.11.6 fixes several bugs in 1.11.5.\n\nBugfixes\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  \n  \n   ### 1.11.5\n   ```\n   ===========================\n\n*September 5, 2017*\n\nDjango 1.11.5 fixes a security issue and several bugs in 1.11.4.\n\nCVE-2017-12794: Possible XSS in traceback section of technical 500 debug page\n=============================================================================\n\nIn older versions, HTML autoescaping was disabled in a portion of the template\nfor the technical 500 debug page. Given the right circumstances, this allowed\na cross-site scripting attack. This vulnerability shouldn&#39;t affect most\nproduction sites since you shouldn&#39;t run with ``DEBUG = True`` (which makes\nthis page accessible) in your production settings.\n\nBugfixes\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  \n  \n   ### 1.11.4\n   ```\n   ===========================\n\n*August 1, 2017*\n\nDjango 1.11.4 fixes several bugs in 1.11.3.\n\nBugfixes\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  \n  \n   ### 1.11.3\n   ```\n   ===========================\n\n*July 1, 2017*\n\nDjango 1.11.3 fixes several bugs in 1.11.2.\n\nBugfixes\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  \n  \n   ### 1.11.2\n   ```\n   ===========================\n\n*June 1, 2017*\n\nDjango 1.11.2 adds a minor feature and fixes several bugs in 1.11.1. Also, the\nlatest string translations from Transifex are incorporated.\n\nMinor feature\n=============\n\nThe new ``LiveServerTestCase.port`` attribute reallows the use case of binding\nto a specific port following the :ref:`bind to port zero\n&lt;liveservertestcase-port-zero-change&gt;` change in Django 1.11.\n\nBugfixes\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  \n  \n   ### 1.11.1\n   ```\n   ===========================\n\n*May 6, 2017*\n\nDjango 1.11.1 adds a minor feature and fixes several bugs in 1.11.\n\nAllowed disabling server-side cursors on PostgreSQL\n===================================================\n\nThe change in Django 1.11 to make :meth:`.QuerySet.iterator()` use server-side\ncursors on PostgreSQL prevents running Django with `pgBouncer` in transaction\npooling mode. To reallow that, use the :setting:`DISABLE_SERVER_SIDE_CURSORS\n&lt;DATABASE-DISABLE_SERVER_SIDE_CURSORS&gt;` setting in :setting:`DATABASES`.\n\nSee :ref:`transaction-pooling-server-side-cursors` for more discussion.\n\nBugfixes\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  \n</details>\n\n\n \n\n<details>\n  <summary>Links</summary>\n  \n  - PyPI: https://pypi.org/project/django\n  - Changelog: https://pyup.io/changelogs/django/\n  - Homepage: https://www.djangoproject.com/\n</details>\n\n\n\n\n\n"},"comment":{"url":"https://api.github.com/repos/paulfurley/expirybot-web/issues/comments/401864785","html_url":"https://github.com/paulfurley/expirybot-web/pull/4#issuecomment-401864785","issue_url":"https://api.github.com/repos/paulfurley/expirybot-web/issues/4","id":401864785,"node_id":"MDEyOklzc3VlQ29tbWVudDQwMTg2NDc4NQ==","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},"created_at":"2018-07-02T16:43:12Z","updated_at":"2018-07-02T16:43:12Z","author_association":"CONTRIBUTOR","body":"Closing this in favor of #5"}}
{"actor":{"display_login":"pyup-bot"}}