[Django Upgrade] [ENG-3947] Direct assignment fix for Django 3#10010
Conversation
cslzchen
left a comment
There was a problem hiding this comment.
@Johnetordoff Can you update the PR description to include
- A brief description of what is broken and how the fix work.
- Is there a source of this incompatibility (e.g. django docs and/or references)
My other concern is: if this is an incompatibility caused by Django upgrade, I would expect to see more places broken. Have you taken a look at other places that we may have this "direct assignment issue" (i.e. not found by unit tests)?
|
Yes I see your concerns and I myself am confused by the fact that I can't find direct mention of this change in our doc, but here is the error gist and test job. |
|
Ah, I see. The error is |
6203817 to
ff5ea9a
Compare
|
Updated: The incompatibility comes from Feature Removed in 2.0
This might have been missed by (or was added after) #9300. |
…OpenScience/osf.io into django-3-squash-only * 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io: [Django Upgrade] Upgrade markdown and mdx_del_ins (CenterForOpenScience#9984) [Django Upgrade] Replace M2M direct assignment (CenterForOpenScience#10010) [Django Upgrade] Upgrade django-elasticsearch-metrics (CenterForOpenScience#10021) [Django Upgrade] Fix one sub-query slicing issue (CenterForOpenScience#10012) Re-add non-anonymized fields removed in CenterForOpenScience#10009 (CenterForOpenScience#10022) Update shield logo for colorado (UC Boulder) Update description for maglab [ENG-3249] Improve registration anonymization (CenterForOpenScience#10009) "backport" artifact changes and swap schema_response.justification (CenterForOpenScience#10003) Add new instn purdue Ensure BitBucket token is string, not bytes Only redirect to cas if not logged in OSFI: Update Shared SSO and Add MagLab/FSU [ENG-3654]
…OpenScience/osf.io into django-3-2 * 'feature/django_upgrade' of https://github.com/CenterForOpenScience/osf.io: [Django Upgrade] Upgrade markdown and mdx_del_ins (CenterForOpenScience#9984) [Django Upgrade] Replace M2M direct assignment (CenterForOpenScience#10010) [Django Upgrade] Upgrade django-elasticsearch-metrics (CenterForOpenScience#10021) [Django Upgrade] Fix one sub-query slicing issue (CenterForOpenScience#10012)
Co-authored-by: John Tordoff <>
Co-authored-by: John Tordoff <>
Co-authored-by: John Tordoff <>
PRs: * remove post-migrate signals from migration stream (#9964) * move createcachetable to post migrate signal (#9944) * [ENG-3836] Investigate waffle flags (#9950) * [ENG-3865] Create Licenses using post-migrate signal (#9961) * [ENG-3863] Move schema ensuring and schema blocks update to post-migrate signals (#9974) * [ENG-3868] Move blocked email domains to post-migrate signal (#9958) * [ENG-3866] Move citation style population out of migration stream (#9966) * [ENG-3867] Create Storage Regions on post migration signal (#9965) * [ENG-3836] Follow-up: Add PyYAML to Requirements (#9993) * [ENG-3862] Move post-migrate signal out of migration stream for default providers (#9971) * Remove unused password change view/route (#9985) * Update import paths and fix deprecated modules for Django 3 (#9983) * Update postgres backend and remove failover router for Django 3 (#10011) * Move file metadata population to unit test fixtures (#9994) * [Django Upgrade] Fix one sub-query slicing issue (#10012) * [Django Upgrade] Upgrade django-elasticsearch-metrics (#10021) * [Django Upgrade] Replace M2M direct assignment (#10010) * [Django Upgrade] Upgrade markdown and mdx_del_ins (#9984) * [Django Upgrade] Move schema activeness/visibility update to pytest fixtures (#10029) Commits: * Remove osf migrations * Remove addon migrations * Init migrations - osf * Init migrations - addons * Fix migration for NotableEmailDomain * Fix circular import with built-in admin migrations * Add a RunSQL migration to update indexes * Upgrade django to 3.2.15 (and related dependencies) * Make fields defined on typedmodels subclasses nullable * Add required on_delete=CASCADE (default) to FKs missing it * Fix django CORS whitelist settings due to origin definition update * Add/Enable missing templates and middlewares in api settings * Comment out admin permissions that clash with built-in "view" ones * Add migrations for django upgrade base fixes * Fix system check warnings for django admin * Fix django cache table creation * Enable django.contrib.sessions.middleware.SessionMiddleware * Use default truthy and falsy values from upgraded DRF 3.13.1 * Use JsonField from django.db.models and django.forms * Fix session cookie encoding/decoding by using ensure_str() * Use prefetch instead of Django include * Fix CORS for ORIGINS_WHITELIST * Rename auto generated migration for django3 upgrade fixes * Remove QuickFile check from get_serializer_class for FileDetail view * Add registration_schema to DraftRegistrationDetailSerializer * Add id to DraftRegistrationDetailSerializer * Fix middleware order and replace deprecated staticfiles with static * Fix and rework from_db_value & to_python for EncryptedJSONField * Fix admin login failure for django upgrade * Wrap generated keen_read_key with ensure_str * Clear cached storage region property when creating a new version * Do not notify in set_password() when creating a test user * Fix RegistrationFactory for django3 upgrade * Remove unused update_version_metadata in file node and update tests * Remove tests for django-include * Remove EGAP backfill command and tests * Set DEFAULT_AUTO_FIELD to django.db.models.AutoField (default value) * Replace deprecated NullBooleanField + add migrations * Replace deprecated url() with re_path() for api * Replace deprecated url() with re_path() for admin * Fix missing or insufficient permission test for admin preprints view * Fix admin user view tests by using HTTP response headers object * Fix duplicate view_node permissions in node and instn view tests * Rework refresh_from_db() to reload GFKs * Fix visible contributor query * Fix handle_archive_fail and its tests * Use a different schema to fix tests failure due to django3 upgrade * Update URLs for URL Validation tests with Django 3 * Improve to_internal_value() in NodeRelationshipField * Add alt fixtures to prevent both siblings & parent/child conflicts * Fix linked_by_nodes in node related counts test * Fix bugged NullBooleanField -> BooleanField migration * Re-make migrations for django3 upgrade and merge them into one Co-authored-by: Longze Chen <cslzchen@gmail.com> Co-authored-by: John Tordoff <johnetordoff@gmail.com> Co-authored-by: Jon Walz <jonmwalz@gmail.com>
Purpose
Note: PR description added by reviewer
This incompatibility comes from Feature Removed in 2.0
This might have been missed by (or was added after) #9300.
Changes
Replaced direct assignment with
.add()and/or.set().QA Notes
Documentation
Side Effects
Ticket
Part of https://openscience.atlassian.net/browse/ENG-3947