diff options
| author | Russell Keith-Magee <russell@keith-magee.com> | 2009-05-03 13:37:20 +0000 |
|---|---|---|
| committer | Russell Keith-Magee <russell@keith-magee.com> | 2009-05-03 13:37:20 +0000 |
| commit | 2c24bba934d26ee79f41961859c70935bfc4cd83 (patch) | |
| tree | 1eb690a0bb26f6f2d35d4d61d5f322cee13f6ae9 | |
| parent | cb5e8e29f062ac92397a3ce8c5454693bf9845ab (diff) | |
Fixed #8903 -- Corrected rendering of admin inline formsets (tabular and stacked) when the inline model has a custom non-autofield primary key. Thanks to dgouldin for the patch.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@10666 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/contrib/admin/helpers.py | 7 | ||||
| -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 | 17 |
3 files changed, 16 insertions, 10 deletions
diff --git a/django/contrib/admin/helpers.py b/django/contrib/admin/helpers.py index 9312eab94f..1bd55d70af 100644 --- a/django/contrib/admin/helpers.py +++ b/django/contrib/admin/helpers.py @@ -145,9 +145,14 @@ class InlineAdminForm(AdminForm): for name, options in self.fieldsets: yield InlineFieldset(self.formset, self.form, name, **options) + def has_auto_field(self): + return self.form._meta.model._meta.has_auto_field + def field_count(self): # tabular.html uses this function for colspan value. - num_of_fields = 1 # always has at least one field + num_of_fields = 0 + if self.has_auto_field(): + num_of_fields += 1 num_of_fields += len(self.fieldsets[0][1]["fields"]) if self.formset.can_order: num_of_fields += 1 diff --git a/django/contrib/admin/templates/admin/edit_inline/stacked.html b/django/contrib/admin/templates/admin/edit_inline/stacked.html index 85488558a2..10629044ed 100644 --- a/django/contrib/admin/templates/admin/edit_inline/stacked.html +++ b/django/contrib/admin/templates/admin/edit_inline/stacked.html @@ -17,7 +17,7 @@ {% for fieldset in inline_admin_form %} {% include "admin/includes/fieldset.html" %} {% endfor %} - {{ inline_admin_form.pk_field.field }} + {% if inline_admin_form.has_auto_field %}{{ inline_admin_form.pk_field.field }}{% endif %} {{ inline_admin_form.fk_field.field }} </div> {% endfor %} diff --git a/django/contrib/admin/templates/admin/edit_inline/tabular.html b/django/contrib/admin/templates/admin/edit_inline/tabular.html index 820928a143..bf947adb76 100644 --- a/django/contrib/admin/templates/admin/edit_inline/tabular.html +++ b/django/contrib/admin/templates/admin/edit_inline/tabular.html @@ -14,7 +14,7 @@ {% endfor %} {% if inline_admin_formset.formset.can_delete %}<th>{% trans "Delete?" %}</th>{% endif %} </tr></thead> - + {% for inline_admin_form in inline_admin_formset %} {% if inline_admin_form.form.non_field_errors %} <tr><td colspan="{{ inline_admin_form.field_count }}">{{ inline_admin_form.form.non_field_errors }}</td></tr> @@ -26,7 +26,8 @@ {% if inline_admin_form.original %} {{ inline_admin_form.original }}{% endif %} {% if inline_admin_form.show_url %}<a href="../../../r/{{ inline_admin_form.original.content_type_id }}/{{ inline_admin_form.original.id }}/">{% trans "View on site" %}</a>{% endif %} </p>{% endif %} - {{ inline_admin_form.pk_field.field }} {{ inline_admin_form.fk_field.field }} + {% if inline_admin_form.has_auto_field %}{{ inline_admin_form.pk_field.field }}{% endif %} + {{ inline_admin_form.fk_field.field }} {% spaceless %} {% for fieldset in inline_admin_form %} {% for line in fieldset %} @@ -48,22 +49,22 @@ {% endfor %} {% endfor %} {% endfor %} - + {% if inline_admin_formset.formset.can_delete %} <td class="delete">{% if inline_admin_form.original %}{{ inline_admin_form.deletion_field.field }}{% endif %}</td> {% endif %} - + </tr> {% endfor %} - + </table> - + </fieldset> </div> - + {# <ul class="tools"> #} {# <li><a class="add" href="">Add another {{ inline_admin_formset.opts.verbose_name|title }}</a></li> #} {# </ul> #} - + </div> |
