summaryrefslogtreecommitdiff
path: root/django
diff options
context:
space:
mode:
authorKaren Tracey <kmtracey@gmail.com>2013-07-19 15:55:16 -0400
committerKaren Tracey <kmtracey@gmail.com>2013-07-21 13:06:11 -0400
commit3aad955ea8db1592fad0012155eaa25b72e50dc5 (patch)
tree05ca7a5388cd3e65503b923ef6faac6b439ef03c /django
parent415a36947cb4b8b61230698e13cca2df9400e245 (diff)
Fixed #13696 -- ensured inline pk field is rendered
Diffstat (limited to 'django')
-rw-r--r--django/contrib/admin/helpers.py8
-rw-r--r--django/contrib/admin/templates/admin/edit_inline/stacked.html2
-rw-r--r--django/contrib/admin/templates/admin/edit_inline/tabular.html2
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 %}