Phase 0: Fix ModuleEnableSettings list() - use get() instead of get_or_create

- Changed to use get() with DoesNotExist exception handling
- Creates settings only if they don't exist
- Better error handling with traceback
- Fixes 404 'Setting not found' errors
This commit is contained in:
IGNY8 VPS (Salman)
2025-11-16 19:26:18 +00:00
parent 0d468ef15a
commit 9ec8908091

View File

@@ -327,8 +327,8 @@ class ModuleEnableSettingsViewSet(AccountModelViewSet):
account = getattr(request, 'account', None)
if not account:
user = getattr(request, 'user', None)
if user:
account = getattr(user, 'account', None)
if user and hasattr(user, 'account'):
account = user.account
if not account:
return error_response(
@@ -337,11 +337,18 @@ class ModuleEnableSettingsViewSet(AccountModelViewSet):
request=request
)
# Get or create settings for account
settings, created = ModuleEnableSettings.objects.get_or_create(account=account)
# Get or create settings for account (one per account)
try:
settings = ModuleEnableSettings.objects.get(account=account)
except ModuleEnableSettings.DoesNotExist:
# Create default settings for account
settings = ModuleEnableSettings.objects.create(account=account)
serializer = self.get_serializer(settings)
return success_response(data=serializer.data, request=request)
except Exception as e:
import traceback
error_trace = traceback.format_exc()
return error_response(
error=f'Failed to load module enable settings: {str(e)}',
status_code=status.HTTP_500_INTERNAL_SERVER_ERROR,