In django project, I created a default function called "create_code" to randomly generate a default value for "code" field in models.py file.
# models.py
class Project(models.Model):
name = models.CharField("Project name", max_length=255)
code = models.CharField("Code", max_length=10, default=create_code, editable=False)
In admin.py file, I set "code" as a readonly_field.
#admin.py
@admin.register(Project)
class ProjectAdmin(admin.ModelAdmin):
fields = ('name', 'code')
readonly_fields = ('code', )
The problem occours when I create a new Project object in admin page. The default value for "code" appers (eg. ABCD), but when I save the data this value change to another one (eg. EFGH). I think two objects are been created: one when loads the page and other when save the data.
How can I read the "code" value from first object to overwrite the last one and save "ABCD" instead of "EFGH"?