Author: brosner
Date: 2009-03-29 13:52:38 -0500 (Sun, 29 Mar 2009)
New Revision: 10178

Modified:
   django/trunk/django/contrib/admin/templatetags/admin_list.py
   django/trunk/tests/regressiontests/admin_views/models.py
   django/trunk/tests/regressiontests/admin_views/tests.py
Log:
Fixed #10622 -- Resolved an issue with model inheritence and list_editable. 
Thanks oyvind and Alex Gaynor.

Modified: django/trunk/django/contrib/admin/templatetags/admin_list.py
===================================================================
--- django/trunk/django/contrib/admin/templatetags/admin_list.py        
2009-03-28 16:36:48 UTC (rev 10177)
+++ django/trunk/django/contrib/admin/templatetags/admin_list.py        
2009-03-29 18:52:38 UTC (rev 10178)
@@ -70,7 +70,7 @@
 
 def result_headers(cl):
     lookup_opts = cl.lookup_opts
-    
+
     for i, field_name in enumerate(cl.list_display):
         attr = None
         try:
@@ -97,7 +97,7 @@
                             raise AttributeError, \
                                 "'%s' model or '%s' objects have no attribute 
'%s'" % \
                                     (lookup_opts.object_name, 
cl.model_admin.__class__, field_name)
-                
+
                 try:
                     header = attr.short_description
                 except AttributeError:
@@ -237,7 +237,7 @@
                 result_repr = conditional_escape(result_repr)
             yield mark_safe(u'<td%s>%s</td>' % (row_class, result_repr))
     if form:
-        yield mark_safe(force_unicode(form[cl.model._meta.pk.attname]))
+        yield mark_safe(force_unicode(form[cl.model._meta.pk.name]))
 
 def results(cl):
     if cl.formset:

Modified: django/trunk/tests/regressiontests/admin_views/models.py
===================================================================
--- django/trunk/tests/regressiontests/admin_views/models.py    2009-03-28 
16:36:48 UTC (rev 10177)
+++ django/trunk/tests/regressiontests/admin_views/models.py    2009-03-29 
18:52:38 UTC (rev 10178)
@@ -143,10 +143,10 @@
     name = models.CharField(max_length=100)
     gender = models.IntegerField(choices=GENDER_CHOICES)
     alive = models.BooleanField()
-    
+
     def __unicode__(self):
         return self.name
-    
+
     class Meta:
         ordering = ["id"]
 
@@ -236,6 +236,18 @@
 class ExternalSubscriberAdmin(admin.ModelAdmin):
     actions = [external_mail, redirect_to]
 
+class Media(models.Model):
+    name = models.CharField(max_length=60)
+
+class Podcast(Media):
+    release_date = models.DateField()
+
+class PodcastAdmin(admin.ModelAdmin):
+    list_display = ('name', 'release_date')
+    list_editable = ('release_date',)
+
+    ordering = ('name',)
+
 admin.site.register(Article, ArticleAdmin)
 admin.site.register(CustomArticle, CustomArticleAdmin)
 admin.site.register(Section, inlines=[ArticleInline])
@@ -246,6 +258,7 @@
 admin.site.register(Persona, PersonaAdmin)
 admin.site.register(Subscriber, SubscriberAdmin)
 admin.site.register(ExternalSubscriber, ExternalSubscriberAdmin)
+admin.site.register(Podcast, PodcastAdmin)
 
 # We intentionally register Promo and ChapterXtra1 but not Chapter nor 
ChapterXtra2.
 # That way we cover all four cases:
@@ -259,5 +272,3 @@
 admin.site.register(Book, inlines=[ChapterInline])
 admin.site.register(Promo)
 admin.site.register(ChapterXtra1)
-
-

Modified: django/trunk/tests/regressiontests/admin_views/tests.py
===================================================================
--- django/trunk/tests/regressiontests/admin_views/tests.py     2009-03-28 
16:36:48 UTC (rev 10177)
+++ django/trunk/tests/regressiontests/admin_views/tests.py     2009-03-29 
18:52:38 UTC (rev 10178)
@@ -1,6 +1,7 @@
 # coding: utf-8
 
 import re
+import datetime
 
 from django.test import TestCase
 from django.contrib.auth.models import User, Permission
@@ -12,7 +13,7 @@
 from django.utils.html import escape
 
 # local test models
-from models import Article, CustomArticle, Section, ModelWithStringPrimaryKey, 
Person, Persona, FooAccount, BarAccount, Subscriber, ExternalSubscriber
+from models import Article, CustomArticle, Section, ModelWithStringPrimaryKey, 
Person, Persona, FooAccount, BarAccount, Subscriber, ExternalSubscriber, Podcast
 
 try:
     set
@@ -740,6 +741,12 @@
     def tearDown(self):
         self.client.logout()
 
+    def test_inheritance(self):
+        Podcast.objects.create(name="This Week in Django",
+            release_date=datetime.date.today())
+        response = self.client.get('/test_admin/admin/admin_views/podcast/')
+        self.failUnlessEqual(response.status_code, 200)
+
     def test_changelist_input_html(self):
         response = self.client.get('/test_admin/admin/admin_views/person/')
         # 2 inputs per object(the field and the hidden id field) = 6


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to django-updates@googlegroups.com
To unsubscribe from this group, send email to 
django-updates+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to