diff --git a/python/ql/lib/semmle/python/frameworks/Django.qll b/python/ql/lib/semmle/python/frameworks/Django.qll index 990eaffddfd..bec0301f86f 100644 --- a/python/ql/lib/semmle/python/frameworks/Django.qll +++ b/python/ql/lib/semmle/python/frameworks/Django.qll @@ -781,6 +781,9 @@ module PrivateDjango { .getMember(className) .getASubclass*() ) + or + result = + ModelOutput::getATypeNode("django.db.models.FileField~Subclass").getASubclass*() } } diff --git a/python/ql/src/meta/ClassHierarchy/Find.ql b/python/ql/src/meta/ClassHierarchy/Find.ql index 0f860452a08..25fc808f582 100644 --- a/python/ql/src/meta/ClassHierarchy/Find.ql +++ b/python/ql/src/meta/ClassHierarchy/Find.ql @@ -437,6 +437,14 @@ class AiohttpView extends FindSubclassesSpec { override API::Node getAlreadyModeledClass() { result = AiohttpWebModel::View::subclassRef() } } +class DjangoFileField extends FindSubclassesSpec { + DjangoFileField() { this = "django.db.models.FileField~Subclass" } + + override API::Node getAlreadyModeledClass() { + result = PrivateDjango::DjangoImpl::DB::Models::FileField::subclassRef() + } +} + bindingset[fullyQualified] predicate fullyQualifiedToYamlFormat(string fullyQualified, string type2, string path) { exists(int firstDot | firstDot = fullyQualified.indexOf(".", 0, 0) |