Opened 15 years ago
Closed 15 years ago
#14701 closed (worksforme)
Meta attributes from abstract class
| Reported by: | Joe | Owned by: | nobody |
|---|---|---|---|
| Component: | Database layer (models, ORM) | Version: | 1.2 |
| Severity: | Keywords: | meta | |
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
class CommonInfo(models.Model):
name = models.IntegerField(default=1)
class Meta:
abstract = True
ordering = ['name']
class Student(CommonInfo):
class Meta(CommonInfo.Meta):
db_table = 'student_info'
ordering = []
When instantiating Student as s,
|4>s=Student() |5>s.Meta. s.Meta.__doc__ s.Meta.__module__ s.Meta.abstract s.Meta.ordering |6>s.Meta.ordering Out[6]: ['name']
The ordering attribute from the parent abstract base class is not overwritten as described at: http://docs.djangoproject.com/en/dev/topics/db/models/#meta-and-multi-table-inheritance
I may understand this behavior wrong, but i'd expect to be able to override the ordering attribute or clear it entirely (ordering=[]). Is this working as designed or is this an issue?
Change History (2)
comment:1 by , 15 years ago
comment:2 by , 15 years ago
| Resolution: | → worksforme |
|---|---|
| Status: | new → closed |
Note:
See TracTickets
for help on using tickets.
Why are you trying to know the value of ordering in a Student instance?. Have you tried to see if the ordering in that model works like you expect (no ordering by the name field)? or did you assume it would fail and stopped after seeing the ipython introspection output?. From my tests (http://paste.pocoo.org/show/292829/) things are working correctly.
I'd like to close this ticket because you shouldn't be examining
Model.Metanormodel_instance.Metaat all.Also, even using
._metaisn't correct because it isn't a documented API and I thinkmodel_instance._metais an implementation wart.But first I'd like to know what were you trying to achieve that lead you to examine the
orderingvalue like you are doing.Also, perhaps we could document better the fact that
[]value has a special meaning to theorderingattribute.