Which save method to use?

These are two save methods from Django forms. I don't know which one to use, which one is more professional, industry level. Can anyone guide me and recommend me? I am working on a ecommerce website.


    def save(self, commit=True):
        user = super().save(commit=False)
        # If no username given, use part of email (like amazon does internally)
        if not user.username:
            base = self.cleaned_data["email"].split("@")[0]
            # Make it unique by appending numbers if needed
            username = base
            counter = 1
            while User.objects.filter(username=username).exists():
                username = f"{base}{counter}"
                counter += 1
            user.username = username
        if commit:
            user.save()
        return user
# accounts/forms.py
class RegistrationForm(UserCreationForm):
    # ... fields same as before ...

    def save(self, commit=True):
        email = self.cleaned_data["email"]
        password = self.cleaned_data["password1"]
        first_name = self.cleaned_data.get("first_name")
        last_name = self.cleaned_data.get("last_name")
        username = self.cleaned_data.get("username")

        if not username:
            base = email.split("@")[0]
            username = base
            counter = 1
            while User.objects.filter(username=username).exists():
                username = f"{base}{counter}"
                counter += 1

        # Use manager's create_user (Recommended for future)
        user = User.objects.create_user(
            email=email,
            password=password,
            first_name=first_name,
            last_name=last_name,
            username=username,
        )
        return user
Вернуться на верх