diff --git a/taiga/base/neighbors.py b/taiga/base/neighbors.py index bdb9fda7..adfc706d 100644 --- a/taiga/base/neighbors.py +++ b/taiga/base/neighbors.py @@ -69,7 +69,7 @@ def get_neighbors(obj, results_set=None): left = None try: - right = results_set.get(id=right_object_id) + right = results_set.filter(id=right_object_id).first() except ObjectDoesNotExist: right = None diff --git a/tests/integration/test_neighbors.py b/tests/integration/test_neighbors.py index dc0e56e6..3a2c4df6 100644 --- a/tests/integration/test_neighbors.py +++ b/tests/integration/test_neighbors.py @@ -37,6 +37,17 @@ def test_no_filters(self): assert neighbors.left == us1 assert neighbors.right == us3 + def test_results_set_repeat_id(self): + project = f.ProjectFactory.create() + + us1 = f.UserStoryFactory.create(project=project) + f.RolePointsFactory.create(user_story=us1) + f.RolePointsFactory.create(user_story=us1) + + neighbors = n.get_neighbors(us1, results_set=UserStory.objects.get_queryset().filter(role_points__isnull=False)) + + assert neighbors.right == us1 + def test_filtered_by_tags(self): tag_names = ["test"] project = f.ProjectFactory.create()