Start here. This is the direct spoken answer to practice first.
Overview
The direct answer is no: save() does not automatically run Django's complete model validation.
Calling save() does not automatically call full_clean(). full_clean() runs field cleaning, Model.clean(), uniqueness checks, and model constraints, and code that creates models directly must call it deliberately if that validation is required. Model forms run their own validation flow before saving. Database constraints are still necessary for integrity because application validation can be bypassed or race with another write.