#29354: ordering inherited from abstract superclass does not get applied to
admin
inlines
-------------------------------------+-------------------------------------
Reporter: Moritz | Owner: nobody
Pfeiffer |
Type: Bug | Status: new
Component: Database | Version: 1.11
layer (models, ORM) | Keywords: ordering
Severity: Normal | inheritance abstract meta
Triage Stage: | Has patch: 0
Unreviewed |
Needs documentation: 0 | Needs tests: 0
Patch needs improvement: 0 | Easy pickings: 0
UI/UX: 0 |
-------------------------------------+-------------------------------------
The attached project illustrates a problem where ```Meta.ordering```
inherited from an abstract superclass does not get applied to admin
inlines.
Suppose we have the following models:
{{{#!python
from django.db import models
class Orderable(models.Model):
sort_order = models.IntegerField(null=True, blank=True)
class Meta:
abstract = True
ordering = ['sort_order']
class Foo(models.Model):
name = models.CharField(max_length=50)
def __str__(self):
return self.name
class Meta:
verbose_name = 'foo'
verbose_name_plural = 'foos'
class Bar(Orderable, models.Model):
foo = models.ForeignKey(Foo, blank=True, null=True,
on_delete=models.CASCADE)
name = models.CharField(max_length=50)
def __str__(self):
return '{}-{}'.format(self.name, self.sort_order)
class Meta:
verbose_name = 'bar'
verbose_name_plural = 'bars'
# ordering = ['sort_order'] # needs to be explicitly set to
effect admin inline ordering
}}}
and the following admin definition:
{{{#!python
from django.contrib import admin
from metainheritance.models import Foo, Bar
class BarInline(admin.StackedInline):
model = Bar
fields = ['foo', 'name', 'sort_order']
extra = 0
class FooAdmin(admin.ModelAdmin):
inlines = [BarInline]
admin.site.register(Foo, FooAdmin)
}}}
Then BarInline objects in the admin interface will only be ordered by
```sort_order``` if it is explicitly defined on Bar.Meta.
In the attached project, there is a custome management command ```python
manage.py create_data``` to initialize the database.
--
Ticket URL: <https://code.djangoproject.com/ticket/29354>
Django <https://code.djangoproject.com/>
The Web framework for perfectionists with deadlines.
--
You received this message because you are subscribed to the Google Groups
"Django updates" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
To post to this group, send email to [email protected].
To view this discussion on the web visit
https://groups.google.com/d/msgid/django-updates/058.6ff8d77dd49649e1977d8456fc1f8ae1%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.