[Django] #29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view

7 views
Skip to first unread message

Django

unread,
Nov 8, 2018, 3:30:57 AM11/8/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
-----------------------------------------+------------------------
Reporter: Sébastiaan | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 2.1
Severity: Normal | Keywords:
Triage Stage: Unreviewed | Has patch: 0
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-----------------------------------------+------------------------
The values of the `ModelAdmin.prepopulated_fields` field will be used when
showing a read-only view in the admin. This results in a `KeyError`: `"Key
'to_be_prepopulated' not found in 'SampleModelForm'. Choices are: ."`.

{{{
#!python
class SampleModel(models.Model):
input_value = models.TextField()
to_be_prepopulated = models.TextField()
}}}
{{{
#!python
@admin.register(SampleModel)
class SampleModelAdmin(admin.ModelAdmin):
prepopulated_fields = {'to_be_prepopulated': ('input_value',)}

def has_change_permission(self, request, obj=None):
return False
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/29929>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.

Django

unread,
Nov 8, 2018, 3:47:04 AM11/8/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
-------------------------------+--------------------------------------

Reporter: Sébastiaan | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 2.1
Severity: Normal | Resolution:

Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------

Comment (by Thom Wiggers):

This was also noted at
https://github.com/django/django/pull/6734#issuecomment-261015510

--
Ticket URL: <https://code.djangoproject.com/ticket/29929#comment:1>

Django

unread,
Nov 8, 2018, 4:23:21 AM11/8/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
-------------------------------+--------------------------------------

Reporter: Sébastiaan | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 2.1
Severity: Normal | Resolution:

Keywords: | Triage Stage: Unreviewed
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+--------------------------------------
Changes (by Thom Wiggers):

* Attachment "0001-Tests-that-demonstrate-breakage.patch" added.

The attached file demonstrates the issue in the Django test suite.

Django

unread,
Nov 8, 2018, 4:32:42 AM11/8/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
-------------------------------+------------------------------------

Reporter: Sébastiaan | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 2.1
Severity: Normal | Resolution:
Keywords: | Triage Stage: Accepted

Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------+------------------------------------
Changes (by Thom Wiggers):

* stage: Unreviewed => Accepted


--
Ticket URL: <https://code.djangoproject.com/ticket/29929#comment:2>

Django

unread,
Nov 8, 2018, 4:37:45 AM11/8/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
---------------------------------+------------------------------------

Reporter: Sébastiaan | Owner: nobody
Type: Bug | Status: new
Component: contrib.admin | Version: 2.1
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted

Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
---------------------------------+------------------------------------
Changes (by Carlton Gibson):

* severity: Normal => Release blocker


--
Ticket URL: <https://code.djangoproject.com/ticket/29929#comment:3>

Django

unread,
Nov 8, 2018, 7:42:22 AM11/8/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
-------------------------------------+------------------------------------
Reporter: Sébastiaan Versteeg | Owner: nobody

Type: Bug | Status: new
Component: contrib.admin | Version: 2.1
Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+------------------------------------

Comment (by Sébastiaan Versteeg):

Would it suffice to filter all read-only fields from the prepopulated
fields? That would also have the side effect that normal read-only fields
are also allowed to be prepopulated though.

--
Ticket URL: <https://code.djangoproject.com/ticket/29929#comment:4>

Django

unread,
Nov 9, 2018, 2:01:59 PM11/9/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
-------------------------------------+-------------------------------------
Reporter: Sébastiaan Versteeg | Owner: Basil
| Dubyk
Type: Bug | Status: assigned
Component: contrib.admin | Version: 2.1

Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 0 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Basil Dubyk):

* owner: nobody => Basil Dubyk
* status: new => assigned


--
Ticket URL: <https://code.djangoproject.com/ticket/29929#comment:5>

Django

unread,
Nov 9, 2018, 3:50:34 PM11/9/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
-------------------------------------+-------------------------------------
Reporter: Sébastiaan Versteeg | Owner: Basil
| Dubyk
Type: Bug | Status: assigned
Component: contrib.admin | Version: 2.1

Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Basil Dubyk):

* has_patch: 0 => 1


Comment:

[https://github.com/django/django/pull/10629 PR]

--
Ticket URL: <https://code.djangoproject.com/ticket/29929#comment:6>

Django

unread,
Nov 28, 2018, 2:01:39 PM11/28/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
-------------------------------------+-------------------------------------
Reporter: Sébastiaan Versteeg | Owner: Basil
| Dubyk
Type: Bug | Status: assigned
Component: contrib.admin | Version: 2.1

Severity: Release blocker | Resolution:
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0
Needs tests: 0 | Patch needs improvement: 1

Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Tim Graham):

* needs_better_patch: 0 => 1


--
Ticket URL: <https://code.djangoproject.com/ticket/29929#comment:7>

Django

unread,
Nov 28, 2018, 5:11:38 PM11/28/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
-------------------------------------+-------------------------------------
Reporter: Sébastiaan Versteeg | Owner: Basil
| Dubyk
Type: Bug | Status: closed
Component: contrib.admin | Version: 2.1
Severity: Release blocker | Resolution: fixed
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------
Changes (by Tim Graham <timograham@…>):

* status: assigned => closed
* resolution: => fixed


Comment:

In [changeset:"7d1123e5ada60963ba3c708a8932e57342278706" 7d1123e5]:
{{{
#!CommitTicketReference repository=""
revision="7d1123e5ada60963ba3c708a8932e57342278706"
Fixed #29929 -- Fixed admin view-only change form crash when using
ModelAdmin.prepopulated_fields.
}}}

Django

unread,
Nov 28, 2018, 5:48:23 PM11/28/18
to django-...@googlegroups.com
#29929: ModelAdmin.prepopulated_fields crashing admin when showing read-only view
-------------------------------------+-------------------------------------
Reporter: Sébastiaan Versteeg | Owner: Basil
| Dubyk
Type: Bug | Status: closed
Component: contrib.admin | Version: 2.1

Severity: Release blocker | Resolution: fixed
Keywords: | Triage Stage: Accepted
Has patch: 1 | Needs documentation: 0

Needs tests: 0 | Patch needs improvement: 0
Easy pickings: 0 | UI/UX: 0
-------------------------------------+-------------------------------------

Comment (by Tim Graham <timograham@…>):

In [changeset:"381bdd4898bffbe1cbd3020826e6bf4c7cc63254" 381bdd48]:
{{{
#!CommitTicketReference repository=""
revision="381bdd4898bffbe1cbd3020826e6bf4c7cc63254"
[2.1.x] Fixed #29929 -- Fixed admin view-only change form crash when using
ModelAdmin.prepopulated_fields.

Backport of 7d1123e5ada60963ba3c708a8932e57342278706 from master.
}}}

--
Ticket URL: <https://code.djangoproject.com/ticket/29929#comment:8>

Reply all
Reply to author
Forward
0 new messages