Django: field's default value from model instance

django, django-models

Solution

If your `default` is constructed from other field values, you need to have a model instance to get the values.

Override the `save()` method:

class User(AbstractUser):
    folder_name = models.CharField(max_length=255, unique=True)

    def save(self, *args, **kwargs):
        if not self.folder_name:
            self.folder_name = create_folder_name(self.first_name, self.last_name)
        super(User, self).save(*args, **kwargs)

Problem

I'm trying to get the last_name and first_name of the newly created user and create the foldername using both values. But I get type object 'User' has no attribute 'first_name' This is my Users model: ``` def create_folder_name(first_name, last_name): return first_name + last_name class User(AbstractUser): folder_name = models.CharField(max_length=255, unique=True, default=create_folder_name(User.first_name, User.last_name)) ``` How can I pass the User.first_name to my function

Original source