diff options
author | 2020-10-07 09:38:45 +0530 | |
---|---|---|
committer | 2020-10-07 09:38:45 +0530 | |
commit | 7b2275dd0888cc4e91866921ab3be5799eb44986 (patch) | |
tree | 8d370bc7c711fdeec5a7406be25deffea07874b6 /pydis_site/apps/api/serializers.py | |
parent | refactor tests to use updated changes and add tests for UserListPagination (diff) |
use more efficient code
Diffstat (limited to 'pydis_site/apps/api/serializers.py')
-rw-r--r-- | pydis_site/apps/api/serializers.py | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/pydis_site/apps/api/serializers.py b/pydis_site/apps/api/serializers.py index 51afbe73..ed6717e7 100644 --- a/pydis_site/apps/api/serializers.py +++ b/pydis_site/apps/api/serializers.py @@ -262,12 +262,14 @@ class UserListSerializer(ListSerializer): def create(self, validated_data: list) -> list: """Override create method to optimize django queries.""" new_users = [] - request_user_ids = [user["id"] for user in validated_data] + seen = set() for user_dict in validated_data: - if request_user_ids.count(user_dict["id"]) > 1: - raise ValidationError({"id": f"User with ID {user_dict['id']} " - f"given multiple times."}) + if user_dict["id"] in seen: + raise ValidationError( + {"id": f"User with ID {user_dict['id']} given multiple times."} + ) + seen.add(user_dict["id"]) new_users.append(User(**user_dict)) return User.objects.bulk_create(new_users, ignore_conflicts=True) |