Django DRF Проблемы с производительностью логики с несколькими условиями

Модель корзины хранит элементы корзины как для гостевых, так и для зарегистрированных пользователей.

Я предоставляю гостевому пользователю уникальный ключ с помощью uuid и сохраняю его в cookie.

Ситуация, в которой я хочу связать элементы корзины, включенные в статус гостевого пользователя, с

логин корзины пользователя. Поэтому я написал логику, рассматривающую 3 ситуации.

  1. Когда вы являетесь гостевым пользователем, нажмите кнопку корзины, чтобы создать модель корзины.

  2. Если вы заполнили корзину до входа в систему, удалите уникальный ключ модели корзины

    .

и обновите его информацией о вашем пользователе.

  1. Если после входа в систему вы сразу нажимаете кнопку корзины, создайте корзину немедленно.

Влияет ли конфигурирование логики при этих трех условиях на производительность?

Обычно ли использовать несколько условий подобным образом? Не перегружает ли это сервер?

Помогите мне улучшить мою логику. спасибо

@api_view(['POST'])
def addToCart(request):
    user = request.user
    data = request.data
    guest_id = request.COOKIE.get('guest_user')
    
    #if anonymous user puts item in the cart
    if not request.user.is_authenticated:
        cart = Cart.objects.create(
            guest_id = guest_id
        )
        CartItems.objects.create(
            cart = cart,
            product = data['product_id'],
            product_option = data['product_option'],
            qty = data['qty']   
        )
        
        serializer = CartSerializer(cart, many=False)
        return Response(serializer.data)
    
    #if guest_user already set his cart, and logged in. update the cart under registered user account.
    elif request.user.is_authenticated and Cart.objects.filter(guest_id=guest_id):
        cart = Cart.objects.filter(guest_id=guest_id).update(user = user,
                                                        guest_id = '')
        serializer = CartSerializer(cart, many=False)
        return Response(serializer.data)
        
    #if registerd user set his cart.    
    else:
        cart = Cart.objects.create(
                user = user
            )
        CartItems.objects.create(
                cart = cart,
                product = data['product_id'],
                product_option = data['product_option'],
                qty = data['qty']   
            )
            
        serializer = CartSerializer(cart, many=False)
        return Response(serializer.data)

`

Вернуться на верх