Opened 7 hours ago

Last modified 108 minutes ago

#37168 assigned Bug

Readonly fields with db_default display DatabaseDefault representation

Reported by: Mariusz Felisiak Owned by: Mariusz Felisiak
Component: Forms Version: 6.0
Severity: Normal Keywords:
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description (last modified by Mariusz Felisiak)

Readonly fields with db_default display DatabaseDefault() representation in the admin. For example:

  • models.py
    class MyModel(models.Model):
        uuid = models.UUIDField(db_default=UUID7(), editable=False, primary_key=True)
        created_datetime = models.DateTimeField(db_default=Now(), editable=False)
        modified_datetime = models.DateTimeField(db_default=Now(), editable=False)
        name = models.TextField()
    
  • admin.py
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    readonly_fields = ["uuid", "created_datetime", "modified_datetime"]


I think they should be consider as any other empty values.

Attachments (2)

Screenshot_20260613_125111.png (41.8 KB ) - added by Mariusz Felisiak 7 hours ago.
ticket_37168.zip (7.4 KB ) - added by Mariusz Felisiak 14 minutes ago.

Download all attachments as: .zip

Change History (4)

by Mariusz Felisiak, 7 hours ago

comment:1 by Mariusz Felisiak, 7 hours ago

Description: modified (diff)

comment:2 by Mariusz Felisiak, 2 hours ago

We wanted to add DatabaseDefault() to the list of Field.empty_values and modify its __hash__ and __eq__. Unfortunately, there is an issue in importing DatabaseDefault anywhere in the forms module and expression is required to initialize DatabaseDefault. I'm thinking about adding is_value_empty() hook to the Field:

def is_value_empty(self, value):
    return value in self.empty_values or isinstance(value, DatabaseDefault):

and reusing it everywhere we currently check if value in self.empty_values.

Version 0, edited 2 hours ago by Mariusz Felisiak (next)

by Mariusz Felisiak, 14 minutes ago

Attachment: ticket_37168.zip added
Note: See TracTickets for help on using tickets.
Back to Top