Django get_or_create создает объект, но не сохраняет его в базе данных

Итак, у меня есть функция трансфера, которая удаляет одного футболиста из базы данных и заменяет его другим. Я также пытаюсь создать новый экземпляр объекта трансфера, который содержит основные данные о трансферах. Проблема в том, что функция get_or_create возвращает True для созданного объекта и даже печатает объект трансфера с увеличенным пк (т.е. Transfer object(48)), но он не появляется в базе данных.

models.py

class Transfer(models.Model):
    player_out = models.ForeignKey(MyFootballer, on_delete=models.CASCADE, null=True, blank=True)
    player_in = models.ForeignKey(Footballer, on_delete=models.CASCADE, null=True, blank=True)
    matchday = models.ForeignKey(Matchday, on_delete=models.CASCADE, null=True, blank=True)
    owner = models.IntegerField (null=True)

views.py

@login_required
def makeTransfer(request):
    player_in_ID = request.POST.get('playerinID')
    player_out_ID = request.POST.get('playeroutID')
    player_out = MyFootballer.objects.get(id = player_out_ID)
    matchday = player_out.matchday.id
    player_in = Footballer.objects.get(id = player_in_ID)
    squad = MyFootballer.objects.filter(owner = request.user, matchday = matchday)
    budget = 150000000 - calculate_squad_value(squad)
    new_budget = budget + player_out.footballer.price - player_in.price
    transfers = Transfer.objects.filter(owner = request.user.id, matchday_id = matchday)
    transfers_left = 3 - transfers.count()
    if transfers_left >= 1: 
        if new_budget <= 150000000:
            if player_out.footballer.position == player_in.position:
                new_transfer, created = Transfer.objects.get_or_create(player_out_id =player_out_ID, player_in_id = player_in_ID, matchday_id = matchday, owner = request.user.id)
                print ("here",new_transfer)
                MyFootballer.objects.filter(id = player_out.id).delete()
                MyFootballer.objects.create(footballer_id = player_in.id, matchday_id = matchday, owner = request.user, squad_role = player_out.squad_role)
                return JsonResponse({'status':created})
            else:
                return JsonResponse({'status':'err_pos'})
        return JsonResponse({'status':'err_bud'})
    return JsonResponse({"status":'err_trans'})

Странно то, что когда я жестко кодирую значения player_in_id или player_out_id, запись сохраняется в базе данных. Что я делаю не так?

Я пробовал objects.create, objects.save, objects.get_or_create и удаление базы данных и повторное применение миграций.

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