Opened 10 months ago

Last modified 10 months ago

#35029 closed Bug

DisallowedModelAdminLookup for uuid field — at Initial Version

Reported by: James Lao Owned by: nobody
Component: contrib.admin Version: 5.0
Severity: Normal Keywords: DisallowedModelAdminLookup, uuid
Cc: Triage Stage: Unreviewed
Has patch: no Needs documentation: no
Needs tests: no Patch needs improvement: no
Easy pickings: no UI/UX: no

Description

In Django 5.0, if we create a model with primary ID field with UUIDField, and another model referencing it, then in Django admin, if we create a filter of the second model with the first model, an error of DisallowedModelAdminLookup will be thrown.

in models.py

from django.db import models
import uuid

# Create your models here.

class Request(models.Model):
    id = models.UUIDField(primary_key=True, default=uuid.uuid4,
                          editable=False, verbose_name='Request ID')
    name = models.CharField(max_length=50, blank=True)


class RequestItem(models.Model):
    request = models.ForeignKey(Request, on_delete=models.CASCADE, related_name='items')
    description = models.CharField(max_length=255, blank=True)

in admin.py

from . import models

@admin.register(models.RequestItem)
class RequestItemAdmin(admin.ModelAdmin):
    list_display = (
        'request',
    )
    list_filter = (
        'request',
    )


@admin.register(models.Request)
class RequestAdmin(admin.ModelAdmin):
    list_display = (
        'id', 'name'
    )
    list_filter = (
        'id',
    )

Then the filter of request in RequestItemAdmin will throw an error

DisallowedModelAdminLookup at /admin/uid/requestitem/
Filtering by request__id__exact not allowed

Change History (0)

Note: See TracTickets for help on using tickets.
Back to Top