diff --git a/jedi/plugins/django.py b/jedi/plugins/django.py index ab4c273a..6d50153c 100644 --- a/jedi/plugins/django.py +++ b/jedi/plugins/django.py @@ -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) diff --git a/test/completion/django.py b/test/completion/django.py index 8d8ca44b..87a6421a 100644 --- a/test/completion/django.py +++ b/test/completion/django.py @@ -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 # -----------------