-
Notifications
You must be signed in to change notification settings - Fork 62
Open
Description
Environment:
Python version: 3.11
Open edX version: redwood
Enterprise version: 4.17.4
Issue
When creating an Enterprise Customer via django-admin and setting the Learner Default Language field, the enterprise_customer.enterprise_customer_users relationship is accessed prior to the enterprise customer instance being created which triggers an uncaught exception: ValueError: 'EnterpriseCustomer' instance needs to have a primary key value before this relationship can be used.
Stack Trace
Traceback (most recent call last):
File "/openedx/venv/lib/python3.11/site-packages/django/core/handlers/exception.py", line 55, in inner
response = get_response(request)
^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/core/handlers/base.py", line 197, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/pyenv/versions/3.11.8/lib/python3.11/contextlib.py", line 81, in inner
return func(*args, **kwds)
^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/newrelic/hooks/framework_django.py", line 529, in wrapper
return wrapped(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/contrib/admin/options.py", line 688, in wrapper
return self.admin_site.admin_view(view)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/utils/decorators.py", line 134, in _wrapper_view
response = view_func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/views/decorators/cache.py", line 62, in _wrapper_view_func
response = view_func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/contrib/admin/sites.py", line 242, in inner
return view(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/contrib/admin/options.py", line 1886, in add_view
return self.changeform_view(request, None, form_url, extra_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/utils/decorators.py", line 46, in _wrapper
return bound_method(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/utils/decorators.py", line 134, in _wrapper_view
response = view_func(request, *args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/contrib/admin/options.py", line 1747, in changeform_view
return self._changeform_view(request, object_id, form_url, extra_context)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/contrib/admin/options.py", line 1798, in _changeform_view
self.save_model(request, new_object, form, not add)
File "/openedx/venv/lib/python3.11/site-packages/simple_history/admin.py", line 228, in save_model
super().save_model(request, obj, form, change)
File "/openedx/venv/lib/python3.11/site-packages/django/contrib/admin/options.py", line 1227, in save_model
obj.save()
File "/openedx/venv/lib/python3.11/site-packages/model_utils/models.py", line 37, in save
super().save(*args, **kwargs)
File "/openedx/venv/lib/python3.11/site-packages/django/db/models/base.py", line 814, in save
self.save_base(
File "/openedx/venv/lib/python3.11/site-packages/django/db/models/base.py", line 861, in save_base
pre_save.send(
File "/openedx/venv/lib/python3.11/site-packages/django/dispatch/dispatcher.py", line 176, in send
return [
^
File "/openedx/venv/lib/python3.11/site-packages/django/dispatch/dispatcher.py", line 177, in <listcomp>
(receiver, receiver(signal=self, sender=sender, **named))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/enterprise/signals.py", line 110, in update_lang_pref_of_all_learners
unset_language_of_all_enterprise_learners(instance)
File "/openedx/venv/lib/python3.11/site-packages/enterprise/utils.py", line 2230, in unset_language_of_all_enterprise_learners
user_ids = list(enterprise_customer.enterprise_customer_users.values_list('user_id', flat=True))
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/db/models/manager.py", line 87, in manager_method
return getattr(self.get_queryset(), name)(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^
File "/openedx/venv/lib/python3.11/site-packages/django/db/models/fields/related_descriptors.py", line 718, in get_queryset
raise ValueError(
ValueError: 'EnterpriseCustomer' instance needs to have a primary key value before this relationship can be used.
Metadata
Metadata
Assignees
Labels
No labels