﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
22740	Model gets Meta from abstract ancestor class in MTI	German M. Bravo	nobody	"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."	Bug	closed	Database layer (models, ORM)	1.6	Normal	wontfix		anubhav9042@…	Accepted	0	0	0	0	0	0
