diff --git a/back/bots/models/chat.py b/back/bots/models/chat.py index 9abac72..a2110f1 100644 --- a/back/bots/models/chat.py +++ b/back/bots/models/chat.py @@ -135,7 +135,7 @@ def create_flashcard(deck_name: str, front: str, back: str) -> str: logger.info(f"🃏 CREATE_FLASHCARD_TOOL_INVOKED: deck_name='{deck_name}'") try: with transaction.atomic(): - deck = Deck.objects.select_for_update().filter(profile=self.profile, name=deck_name).first() + deck = Deck.objects.filter(profile=self.profile, name=deck_name).first() if not deck: deck = Deck.objects.create( profile=self.profile, @@ -143,8 +143,8 @@ def create_flashcard(deck_name: str, front: str, back: str) -> str: name=deck_name, description="" ) - deck = Deck.objects.select_for_update().get(pk=deck.pk) - max_order = Flashcard.objects.filter(deck=deck).aggregate(models.Max('order'))['order__max'] or -1 + last_card = Flashcard.objects.filter(deck=deck).order_by('-order').first() + max_order = last_card.order if last_card else -1 Flashcard.objects.create( deck=deck, front=front,