Opened 15 months ago
Last modified 15 months ago
#35628 closed Bug
date_hierarchy doesn't support GenerateField with output_field set to DateTimeField or DateField — at Version 1
| Reported by: | john-parton | Owned by: | |
|---|---|---|---|
| Component: | contrib.admin | Version: | 5.0 | 
| Severity: | Release blocker | Keywords: | |
| Cc: | Triage Stage: | Ready for checkin | |
| Has patch: | yes | Needs documentation: | no | 
| Needs tests: | no | Patch needs improvement: | no | 
| Easy pickings: | no | UI/UX: | no | 
Description (last modified by )
If you have a GeneratedField with output_field set to DateField or DateTimeField, you cannot use it in the admin as a date_hierarchy because of a check. If you skip the check, it actually works just fine in my testing. I believe this the check could be adjusted to account for this.
# models.py
class TestModel(models.Model):
    date_range = DateTimeRangeField(_("Date range"))
    start_date = models.GeneratedField(
        expression=Lower("date_range"),
        output_field=models.DateTimeField(),
        db_persist=True,
    )
    
  
# admin.py
class TestAdmin(admin.ModelAdmin):
    date_hierarchy = "start_date"
    # Skipping checks actually makes this work exactly correctly
    def check(self, *args, **kwargs):
        return ()
I'll see if I can whip up a patch.
Change History (1)
comment:1 by , 15 months ago
| Description: | modified (diff) | 
|---|---|
| Has patch: | set | 
| Needs documentation: | set | 
| Needs tests: | set | 
  Note:
 See   TracTickets
 for help on using tickets.