Re: [Django] #22740: Multi-table inheritance gets Meta from abstract ancestor model class

2014-06-13 Thread Django
#22740: Multi-table inheritance gets Meta from abstract ancestor model class
---+--
 Reporter:  Kronuz |Owner:  nobody
 Type:  Uncategorized  |   Status:  new
Component:  Uncategorized  |  Version:  1.6
 Severity:  Normal |   Resolution:
 Keywords: | Triage Stage:  Unreviewed
Has patch:  0  |  Needs documentation:  0
  Needs tests:  0  |  Patch needs improvement:  0
Easy pickings:  0  |UI/UX:  0
---+--
Changes (by anubhav9042):

 * needs_better_patch:   => 0
 * needs_tests:   => 0
 * needs_docs:   => 0


Comment:

 I think that this a issue that must be corrected. To me even the fix seems
 good and simple enough. Though you may want to wait until you hear from a
 core-dev.

-- 
Ticket URL: 
Django 
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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/064.1437a83f10870cbef5c37a36fe3925c3%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.


[Django] #22740: Multi-table inheritance gets Meta from abstract ancestor model class

2014-05-30 Thread Django
#22740: Multi-table inheritance gets Meta from abstract ancestor model class
---+
 Reporter:  Kronuz |  Owner:  nobody
 Type:  Uncategorized  | Status:  new
Component:  Uncategorized  |Version:  1.6
 Severity:  Normal |   Keywords:
 Triage Stage:  Unreviewed |  Has patch:  0
Easy pickings:  0  |  UI/UX:  0
---+
 I'm getting this validation error:
 {{{
 CommandError: One or more models did not validate:
 places.restaurant: "index_together" refers to name. This is not in the
 same model as the index_together statement.
 places.restaurant: "index_together" refers to address. This is not in the
 same model as the index_together statement.
 }}}

 From the following models:
 {{{#!python
 from django.db import models


 class AbstractPlace(models.Model):
 name = models.CharField(max_length=50)
 address = models.CharField(max_length=80)

 class Meta:
 abstract = True
 index_together = (('name', 'address'),)


 class Place(AbstractPlace):
 pass


 class Restaurant(Place):
 serves_hot_dogs = models.BooleanField()
 serves_pizza = models.BooleanField()
 }}}

 Seemingly, the concrete model `Place` ends up with the inherited `Meta`
 from the abstract parent. After the `Place` model class is created, during
 `ModelBase.__new__`), any `Meta` (declared or inherited) should not be
 there for concrete classes.

 This way, models would never have a `Meta` (unless the modified and
 explicitly added Meta, if they're abstract). I added `new_class.Meta =
 None` just above `new_class._prepare()` in `ModelBase` and that properly
 fixes the issue.

-- 
Ticket URL: 
Django 
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 django-updates+unsubscr...@googlegroups.com.
To post to this group, send email to django-updates@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/django-updates/049.00896777d8d37e82448f09a0935296fe%40djangoproject.com.
For more options, visit https://groups.google.com/d/optout.