Следует ли мне использовать .values_list(), .exists() или что-то другое для проверки существования?
У меня есть модель со строкой в качестве первичного ключа
class Player(models.Model):
player_tag = models.CharField(max_length=9, primary_key=True)
[...]
Тег игрока уникален для каждого игрока, и я получаю партии до 30 тегов игроков, прежде чем создать или обновить их.
Однако для этого мне нужно проверить, существует ли уже тег player, а для этого, как я знаю, в Django есть метод .exists(), который проверяет наличие элемента внутри queryset.
Однако я подумал, что это будет попадать в базу данных каждый раз, когда я ищу игрока, что звучит менее чем идеально.
Я также думал об использовании такой строки, как эта :
player_ids = models.Player.objects.values_list('player_tag', flat=True)
Который попадет в базу данных один раз, а затем я проверю этот список на наличие. Но я сомневаюсь, что это можно масштабировать. (Список игроков может стать очень длинным)
Есть ли лучшее решение для этого, что-то, что позволит мне проверять существование строкового первичного ключа, сохраняя минимальное влияние на базу данных ?