Properly implement inheritance for Django models

This commit is contained in:
Dave Halter
2020-04-25 21:59:13 +02:00
parent 92623232c3
commit c761dded35
2 changed files with 27 additions and 1 deletions

View File

@@ -110,7 +110,7 @@ def _new_dict_filter(cls):
filters = cls.get_filters(is_instance=True, include_metaclasses=False)
dct = {
name.string_name: DjangoModelName(cls, name)
for filter_ in filters
for filter_ in reversed(list(filters))
for name in filter_.values()
}
manager = _create_manager_for(cls)

View File

@@ -44,6 +44,7 @@ class BusinessModel(models.Model):
# -----------------
model_instance = BusinessModel()
#? int()
model_instance.integer_field
#? int()
@@ -121,6 +122,31 @@ model_instance.objects.update(x='')
#? BusinessModel()
model_instance.objects.create()
# -----------------
# Inheritance
# -----------------
class Inherited(BusinessModel):
text_field = models.IntegerField()
new_field = models.FloatField()
inherited = Inherited()
#? int()
inherited.text_field
#? str()
inherited.char_field
#? float()
inherited.new_field
#? str()
inherited.category_fk2.category_name
#? str()
inherited.objects.get().char_field
#? int()
inherited.objects.get().text_field
#? float()
inherited.objects.get().new_field
# -----------------
# Django Auth
# -----------------