﻿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
35827	Model subclass with __init_subclass__ doesn't get correct _meta instance	Ben Beecher		"When defining and using a model mixin like so:



{{{
class ModelMixin(Model):

    class Meta:
        abstract = True
    
    def __init_subclass__(cls) -> None:
        super().__init_subclass__()
        breakpoint()
        cls._my_setup_func()

class TestModel(ModelMixin):
    name = models.CharField(max_length=100)

}}}


The __init_subclass__ call will be first called when the class is created here:
https://github.com/django/django/blob/main/django/db/models/base.py#L120

However the meta is attached here: 
https://github.com/django/django/blob/main/django/db/models/base.py#L143

So during the init_subclass call you will have the superclass' meta object if you try to access it.

{{{

  55         def __init_subclass__(cls) -> None:                                                                                                             
  56             super().__init_subclass__()                                                                                                                        
  57             breakpoint()                                                                                                                                               
  58  ->         cls._my_setup_func()                                                                                                                                   
(Pdb++) cls
<class 'label.TestModel'>
(Pdb++) cls._meta
<Options for ModelMixin>

}}}
"	Uncategorized	new	Uncategorized	5.0	Normal				Unreviewed	0	0	0	0	0	0
