-
Notifications
You must be signed in to change notification settings - Fork 189
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
update django_bulk_update with inbuilt bulk_update #4417
Conversation
@rtibbles Could you take a look at the PR? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
When I add or edit assessment items, or otherwise known as 'Exercises' in the UI, I see this error in my logs:
[2024-01-26 23:06:26,135: ERROR/ForkPoolWorker-1] Field names must be given to bulk_update().
Traceback (most recent call last):
File "/home/bjester/Projects/learningequality/studio2/contentcuration/contentcuration/viewsets/base.py", line 863, in update_from_changes
self.perform_bulk_update(serializer)
File "/home/bjester/Projects/learningequality/studio2/contentcuration/contentcuration/viewsets/base.py", line 850, in perform_bulk_update
serializer.save()
File "/home/bjester/Projects/learningequality/studio2/contentcuration/contentcuration/viewsets/base.py", line 363, in save
instance = super(BulkListSerializer, self).save(**kwargs)
File "/home/bjester/Projects/learningequality/pyenv/versions/3.9.13/envs/studio-3.9.13/lib/python3.9/site-packages/rest_framework/serializers.py", line 703, in save
self.instance = self.update(self.instance, validated_data)
File "/home/bjester/Projects/learningequality/studio2/contentcuration/contentcuration/viewsets/assessmentitem.py", line 70, in update
all_objects = super(AssessmentListSerializer, self).update(
File "/home/bjester/Projects/learningequality/studio2/contentcuration/contentcuration/viewsets/base.py", line 325, in update
self.child.Meta.model.objects.bulk_update(updated_objects, list(properties_to_update))
File "/home/bjester/Projects/learningequality/pyenv/versions/3.9.13/envs/studio-3.9.13/lib/python3.9/site-packages/django/db/models/manager.py", line 85, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
File "/home/bjester/Projects/learningequality/pyenv/versions/3.9.13/envs/studio-3.9.13/lib/python3.9/site-packages/django/db/models/query.py", line 534, in bulk_update
raise ValueError('Field names must be given to bulk_update().')
ValueError: Field names must be given to bulk_update().
``
@bjester I'm working on a few changes, please wait before reviewing it. I'll let you know when the changes are ready. |
@bjester could you check the PR out? |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
The prior issue is resolved! Although a change to contentcuration/contentcuration/utils/sync.py
looks questionable. Although, I was unable to get it to fail using the 'sync channel' mechanism
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Looks good! Thanks @FidalMathew !
Summary
Description of the change(s) you made
I have remove django_bulk_update function in 2 files:
Manual verification steps performed
Screenshots (if applicable)
Does this introduce any tech-debt items?
Reviewer guidance
How can a reviewer test these changes?
Are there any risky areas that deserve extra testing?
References
Comments
Contributor's Checklist
PR process:
CHANGELOG
label been added to this PR. Note: items with this label will be added to the CHANGELOG at a later timedocs
label has been added if this introduces a change that needs to be updated in the user docs?requirements.txt
files also included in this PRStudio-specifc:
notranslate
class been added to elements that shouldn't be translated by Google Chrome's automatic translation feature (e.g. icons, user-generated text)pages
,components
, andlayouts
directories as described in the docsTesting:
Reviewer's Checklist
This section is for reviewers to fill out.
yarn
andpip
)