Commit 65108226 authored by Joseph Kocherhans's avatar Joseph Kocherhans
Browse files

[1.1.X] Fixed #12561. InlineAdmin now respects can_delete=False. Backport of [12533] from trunk.


git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@12534 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent c7117b10
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -68,7 +68,7 @@ answer newbie questions, and generally made Django that much better:
    James Bennett
    Julian Bez
    Arvis Bickovskis <viestards.lists@gmail.com>
    Natalia Bidart
    Natalia Bidart <nataliabidart@gmail.com>
    Paul Bissex <http://e-scribe.com/>
    Simon Blanchard
    David Blewett <david@dawninglight.net>
+2 −0
Original line number Diff line number Diff line
@@ -1121,6 +1121,7 @@ class InlineModelAdmin(BaseModelAdmin):
    template = None
    verbose_name = None
    verbose_name_plural = None
    can_delete = True

    def __init__(self, parent_model, admin_site):
        self.admin_site = admin_site
@@ -1163,6 +1164,7 @@ class InlineModelAdmin(BaseModelAdmin):
            "formfield_callback": curry(self.formfield_for_dbfield, request=request),
            "extra": self.extra,
            "max_num": self.max_num,
            "can_delete": self.can_delete,
        }
        defaults.update(kwargs)
        return inlineformset_factory(self.parent_model, self.model, **defaults)
+1 −1
Original line number Diff line number Diff line
@@ -386,7 +386,7 @@ class GenericInlineModelAdmin(InlineModelAdmin):
            "formfield_callback": self.formfield_for_dbfield,
            "formset": self.formset,
            "extra": self.extra,
            "can_delete": True,
            "can_delete": self.can_delete,
            "can_order": False,
            "fields": fields,
            "max_num": self.max_num,
+17 −0
Original line number Diff line number Diff line
<?xml version="1.0" encoding="utf-8"?>
<django-objects version="1.0">
    <object pk="100" model="auth.user">
        <field type="CharField" name="username">super</field>
        <field type="CharField" name="first_name">Super</field>
        <field type="CharField" name="last_name">User</field>
        <field type="CharField" name="email">super@example.com</field>
        <field type="CharField" name="password">sha1$995a3$6011485ea3834267d719b4c801409b8b1ddd0158</field>
        <field type="BooleanField" name="is_staff">True</field>
        <field type="BooleanField" name="is_active">True</field>
        <field type="BooleanField" name="is_superuser">True</field>
        <field type="DateTimeField" name="last_login">2007-05-30 13:20:10</field>
        <field type="DateTimeField" name="date_joined">2007-05-30 13:20:10</field>
        <field to="auth.group" name="groups" rel="ManyToManyRel"></field>
        <field to="auth.permission" name="user_permissions" rel="ManyToManyRel"></field>
    </object>
</django-objects>
+20 −1
Original line number Diff line number Diff line
@@ -3,6 +3,7 @@ Testing of admin inline formsets.

"""
from django.db import models
from django.contrib import admin
from django.contrib.contenttypes.models import ContentType
from django.contrib.contenttypes import generic

@@ -29,6 +30,24 @@ class Child(models.Model):
    def __unicode__(self):
        return u'I am %s, a child of %s' % (self.name, self.parent)


class Holder(models.Model):
    dummy = models.IntegerField()


class Inner(models.Model):
    dummy = models.IntegerField()
    holder = models.ForeignKey(Holder)


class InnerInline(admin.StackedInline):
    model = Inner
    can_delete = False


# Test bug #12561
admin.site.register(Holder, inlines=[InnerInline])

__test__ = {'API_TESTS': """

# Regression test for #9362
Loading