You don't need margin, you only need enough cash to cover the maximum loss, which is can be very small. e.g. right now if I wanted 3 put spreads on AMZN at 2640/2635 expiring this Friday, it would give me a net credit of about $2 per contract, or $600 credited to my account. My maximum loss would be 3 * 100 * (2640-2635) = $1500 minus the credit ($600) received, or $900. As long as I had a mere $900 in my account, this trade would be allowed.
If I held through expiration and the short leg (AMZN $2640) was assigned, I would be contractually obligated to buy 300 shares of Amazon at $2640 a piece. This would briefly reduce my buying power by -$792,000. But as I also hold a contract to sell 300 shares of Amazon at $2635 ($790,500), it would have a net cost of only $1,500. And since I already received $600 up front, it would be just $900 additional out of pocket. But for a period of time, my account balance would have displayed -$792k.