You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ValueError: 'EnterpriseCustomer' instance needs to have a primary key value before this relationship can be used. when setting default_language on create
#2333
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.
The text was updated successfully, but these errors were encountered:
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, theenterprise_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
The text was updated successfully, but these errors were encountered: