diff --git a/snf-admin-app/synnefo_admin/admin/resources/projects/utils.py b/snf-admin-app/synnefo_admin/admin/resources/projects/utils.py index 76df907414dbd673925ae6e48cee4f96d32dca16..93f35d9fb3c003115db116be054e854dd2a08621 100644 --- a/snf-admin-app/synnefo_admin/admin/resources/projects/utils.py +++ b/snf-admin-app/synnefo_admin/admin/resources/projects/utils.py @@ -37,9 +37,16 @@ def get_actual_owner(inst): def get_project_or_404(query, for_update=False): project_obj = Project.objects.select_for_update() if for_update\ else Project.objects + + if isinstance(query, basestring): + q = Q(id=int(query)) if query.isdigit() else Q(uuid=query) + elif isinstance(query, int) or isinstance(query, long): + q = Q(id=int(query)) + else: + raise TypeError("Unexpected type of query") + try: - return project_obj.get(Q(id=int(query)) if query.isdigit() - else Q(uuid=query)) + return project_obj.get(q) except ObjectDoesNotExist: raise AdminHttp404( "No Project was found that matches this query: %s\n" % query) diff --git a/snf-admin-app/synnefo_admin/admin/resources/users/utils.py b/snf-admin-app/synnefo_admin/admin/resources/users/utils.py index c96cdb73f86ba82eb513f32e17b5442ae3d8d9b8..6c6c47a0620867164917693ea354f1c1b555434d 100644 --- a/snf-admin-app/synnefo_admin/admin/resources/users/utils.py +++ b/snf-admin-app/synnefo_admin/admin/resources/users/utils.py @@ -42,7 +42,14 @@ def get_user_or_404(query, for_update=False): """ usr_obj = AstakosUser.objects.select_for_update() if for_update\ else AstakosUser.objects - q = Q(id=int(query)) if query.isdigit() else Q(uuid=query) | Q(email=query) + + if isinstance(query, basestring): + q = Q(id=int(query)) if query.isdigit() else Q(uuid=query) | Q(email=query) + elif isinstance(query, int) or isinstance(query, long): + q = Q(id=int(query)) + else: + raise TypeError("Unexpected type of query") + try: return usr_obj.get(q) except ObjectDoesNotExist: