diff options
| author | Karen Tracey <kmtracey@gmail.com> | 2013-07-19 15:55:16 -0400 |
|---|---|---|
| committer | Karen Tracey <kmtracey@gmail.com> | 2013-07-21 13:06:11 -0400 |
| commit | 3aad955ea8db1592fad0012155eaa25b72e50dc5 (patch) | |
| tree | 05ca7a5388cd3e65503b923ef6faac6b439ef03c /django | |
| parent | 415a36947cb4b8b61230698e13cca2df9400e245 (diff) | |
Fixed #13696 -- ensured inline pk field is rendered
Diffstat (limited to 'django')
| -rw-r--r-- | django/contrib/admin/helpers.py | 8 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/edit_inline/stacked.html | 2 | ||||
| -rw-r--r-- | django/contrib/admin/templates/admin/edit_inline/tabular.html | 2 |
3 files changed, 7 insertions, 5 deletions
diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py index 320d3267a7..3ffb85e6c6 100644 --- a/django/contrib/admin/helpers.py +++ b/django/contrib/admin/helpers.py @@ -266,10 +266,12 @@ class InlineAdminForm(AdminForm): yield InlineFieldset(self.formset, self.form, name, self.readonly_fields, model_admin=self.model_admin, **options) - def has_auto_field(self): - if self.form._meta.model._meta.has_auto_field: + def needs_explicit_pk_field(self): + # Auto fields are editable (oddly), so need to check for auto or non-editable pk + if self.form._meta.model._meta.has_auto_field or not self.form._meta.model._meta.pk.editable: return True - # Also search any parents for an auto field. + # Also search any parents for an auto field. (The pk info is propagated to child + # models so that does not need to be checked in parents.) for parent in self.form._meta.model._meta.get_parent_list(): if parent._meta.has_auto_field: return True diff --git a/django/contrib/admin/templates/admin/edit_inline/stacked.html b/django/contrib/admin/templates/admin/edit_inline/stacked.html index 2025dd8083..32917756b3 100644 --- a/django/contrib/admin/templates/admin/edit_inline/stacked.html +++ b/django/contrib/admin/templates/admin/edit_inline/stacked.html @@ -13,7 +13,7 @@ {% for fieldset in inline_admin_form %} {% include "admin/includes/fieldset.html" %} {% endfor %} - {% if inline_admin_form.has_auto_field %}{{ inline_admin_form.pk_field.field }}{% endif %} + {% if inline_admin_form.needs_explicit_pk_field %}{{ inline_admin_form.pk_field.field }}{% endif %} {{ inline_admin_form.fk_field.field }} </div>{% endfor %} </div> diff --git a/django/contrib/admin/templates/admin/edit_inline/tabular.html b/django/contrib/admin/templates/admin/edit_inline/tabular.html index ca853bc989..e6097f0dce 100644 --- a/django/contrib/admin/templates/admin/edit_inline/tabular.html +++ b/django/contrib/admin/templates/admin/edit_inline/tabular.html @@ -29,7 +29,7 @@ {% if inline_admin_form.original %} {{ inline_admin_form.original }}{% endif %} {% if inline_admin_form.show_url %}<a href="{% url 'admin:view_on_site' inline_admin_form.original_content_type_id inline_admin_form.original.pk %}">{% trans "View on site" %}</a>{% endif %} </p>{% endif %} - {% if inline_admin_form.has_auto_field %}{{ inline_admin_form.pk_field.field }}{% endif %} + {% if inline_admin_form.needs_explicit_pk_field %}{{ inline_admin_form.pk_field.field }}{% endif %} {{ inline_admin_form.fk_field.field }} {% spaceless %} {% for fieldset in inline_admin_form %} |
