@@ -1979,40 +1979,195 @@ private module Django {
1979
1979
/** Provides models for django forms (defined in the `django.forms` module) */
1980
1980
module Forms {
1981
1981
/**
1982
- * Provides models for the `django.forms.Form` class and subclasses.
1982
+ * Provides models for the `django.forms.forms.BaseForm` class and subclasses. This
1983
+ * is usually used by the `django.forms.forms.Form` class, which is also available
1984
+ * under the more commonly used alias `django.forms.Form`.
1983
1985
*
1984
1986
* See https://docs.djangoproject.com/en/3.1/ref/forms/api/
1985
1987
*/
1986
1988
module Form {
1987
- /** Gets a reference to the `django.forms.Form ` class or any subclass. */
1989
+ /** Gets a reference to the `django.forms.forms.BaseForm ` class or any subclass. */
1988
1990
API:: Node subclassRef ( ) {
1991
+ // canonical definition
1989
1992
result =
1990
1993
API:: moduleImport ( "django" )
1994
+ .getMember ( "forms" )
1995
+ .getMember ( "forms" )
1996
+ .getMember ( [ "BaseForm" , "Form" ] )
1997
+ .getASubclass * ( )
1998
+ or
1999
+ result =
2000
+ API:: moduleImport ( "django" )
2001
+ .getMember ( "forms" )
2002
+ .getMember ( "models" )
2003
+ .getMember ( [ "BaseModelForm" , "ModelForm" ] )
2004
+ .getASubclass * ( )
2005
+ or
2006
+ // aliases from `django.forms`
2007
+ result =
2008
+ API:: moduleImport ( "django" )
2009
+ .getMember ( "forms" )
2010
+ .getMember ( [ "BaseForm" , "Form" , "BaseModelForm" , "ModelForm" ] )
2011
+ .getASubclass * ( )
2012
+ or
2013
+ // other Form subclasses defined in Django
2014
+ result =
2015
+ API:: moduleImport ( "django" )
2016
+ .getMember ( "contrib" )
2017
+ .getMember ( "admin" )
2018
+ .getMember ( "forms" )
2019
+ .getMember ( [ "AdminAuthenticationForm" , "AdminPasswordChangeForm" ] )
2020
+ .getASubclass * ( )
2021
+ or
2022
+ result =
2023
+ API:: moduleImport ( "django" )
2024
+ .getMember ( "contrib" )
2025
+ .getMember ( "admin" )
2026
+ .getMember ( "helpers" )
2027
+ .getMember ( "ActionForm" )
2028
+ .getASubclass * ( )
2029
+ or
2030
+ result =
2031
+ API:: moduleImport ( "django" )
2032
+ .getMember ( "contrib" )
2033
+ .getMember ( "admin" )
2034
+ .getMember ( "views" )
2035
+ .getMember ( "main" )
2036
+ .getMember ( "ChangeListSearchForm" )
2037
+ .getASubclass * ( )
2038
+ or
2039
+ result =
2040
+ API:: moduleImport ( "django" )
2041
+ .getMember ( "contrib" )
2042
+ .getMember ( "auth" )
1991
2043
.getMember ( "forms" )
1992
2044
.getMember ( [
1993
- "Form"
1994
- // TODO: Known subclasses
2045
+ "PasswordResetForm" , "UserChangeForm" , "SetPasswordForm" ,
2046
+ "AdminPasswordChangeForm" , "PasswordChangeForm" , "AuthenticationForm" ,
2047
+ "UserCreationForm"
1995
2048
] )
1996
2049
.getASubclass * ( )
2050
+ or
2051
+ result =
2052
+ API:: moduleImport ( "django" )
2053
+ .getMember ( "contrib" )
2054
+ .getMember ( "flatpages" )
2055
+ .getMember ( "forms" )
2056
+ .getMember ( "FlatpageForm" )
2057
+ .getASubclass * ( )
2058
+ or
2059
+ result =
2060
+ API:: moduleImport ( "django" )
2061
+ .getMember ( "forms" )
2062
+ .getMember ( "formsets" )
2063
+ .getMember ( "ManagementForm" )
2064
+ .getASubclass * ( )
2065
+ or
2066
+ result =
2067
+ API:: moduleImport ( "django" )
2068
+ .getMember ( "forms" )
2069
+ .getMember ( "models" )
2070
+ .getMember ( [ "ModelForm" , "BaseModelForm" ] )
2071
+ .getASubclass * ( )
1997
2072
}
1998
2073
}
1999
2074
2000
2075
/**
2001
- * Provides models for the `django.forms.Field` class and subclasses.
2076
+ * Provides models for the `django.forms.fields.Field` class and subclasses. This is
2077
+ * also available under the more commonly used alias `django.forms.Field`.
2002
2078
*
2003
2079
* See https://docs.djangoproject.com/en/3.1/ref/forms/fields/
2004
2080
*/
2005
2081
module Field {
2006
- /** Gets a reference to the `django.forms.Form ` class or any subclass. */
2082
+ /** Gets a reference to the `django.forms.fields.Field ` class or any subclass. */
2007
2083
API:: Node subclassRef ( ) {
2084
+ exists ( string modName , string clsName |
2085
+ // canonical definition
2086
+ result =
2087
+ API:: moduleImport ( "django" )
2088
+ .getMember ( "forms" )
2089
+ .getMember ( modName )
2090
+ .getMember ( clsName )
2091
+ .getASubclass * ( )
2092
+ or
2093
+ // alias from `django.forms`
2094
+ result = API:: moduleImport ( "django" ) .getMember ( "forms" ) .getMember ( clsName ) .getASubclass * ( )
2095
+ |
2096
+ modName = "fields" and
2097
+ clsName in [
2098
+ "Field" ,
2099
+ // Known subclasses
2100
+ "BooleanField" , "IntegerField" , "CharField" , "SlugField" , "DateTimeField" ,
2101
+ "EmailField" , "DateField" , "TimeField" , "DurationField" , "DecimalField" , "FloatField" ,
2102
+ "GenericIPAddressField" , "UUIDField" , "JSONField" , "FilePathField" ,
2103
+ "NullBooleanField" , "URLField" , "TypedChoiceField" , "FileField" , "ImageField" ,
2104
+ "RegexField" , "ChoiceField" , "MultipleChoiceField" , "ComboField" , "MultiValueField" ,
2105
+ "SplitDateTimeField" , "TypedMultipleChoiceField" , "BaseTemporalField"
2106
+ ]
2107
+ or
2108
+ // Known subclasses from `django.forms.models`
2109
+ modName = "models" and
2110
+ clsName in [ "ModelChoiceField" , "ModelMultipleChoiceField" , "InlineForeignKeyField" ]
2111
+ )
2112
+ or
2113
+ // other Field subclasses defined in Django
2008
2114
result =
2009
2115
API:: moduleImport ( "django" )
2116
+ .getMember ( "contrib" )
2117
+ .getMember ( "auth" )
2010
2118
.getMember ( "forms" )
2119
+ .getMember ( [ "ReadOnlyPasswordHashField" , "UsernameField" ] )
2120
+ .getASubclass * ( )
2121
+ or
2122
+ result =
2123
+ API:: moduleImport ( "django" )
2124
+ .getMember ( "contrib" )
2125
+ .getMember ( "gis" )
2126
+ .getMember ( "forms" )
2127
+ .getMember ( "fields" )
2011
2128
.getMember ( [
2012
- "Field"
2013
- // TODO: Known subclasses
2129
+ "GeometryCollectionField" , "GeometryField" , "LineStringField" ,
2130
+ "MultiLineStringField" , "MultiPointField" , "MultiPolygonField" , "PointField" ,
2131
+ "PolygonField"
2014
2132
] )
2015
2133
.getASubclass * ( )
2134
+ or
2135
+ result =
2136
+ API:: moduleImport ( "django" )
2137
+ .getMember ( "contrib" )
2138
+ .getMember ( "postgres" )
2139
+ .getMember ( "forms" )
2140
+ .getMember ( "array" )
2141
+ .getMember ( [ "SimpleArrayField" , "SplitArrayField" ] )
2142
+ .getASubclass * ( )
2143
+ or
2144
+ result =
2145
+ API:: moduleImport ( "django" )
2146
+ .getMember ( "contrib" )
2147
+ .getMember ( "postgres" )
2148
+ .getMember ( "forms" )
2149
+ .getMember ( "hstore" )
2150
+ .getMember ( "HStoreField" )
2151
+ .getASubclass * ( )
2152
+ or
2153
+ result =
2154
+ API:: moduleImport ( "django" )
2155
+ .getMember ( "contrib" )
2156
+ .getMember ( "postgres" )
2157
+ .getMember ( "forms" )
2158
+ .getMember ( "ranges" )
2159
+ .getMember ( [
2160
+ "BaseRangeField" , "DateRangeField" , "DateTimeRangeField" , "DecimalRangeField" ,
2161
+ "IntegerRangeField"
2162
+ ] )
2163
+ .getASubclass * ( )
2164
+ or
2165
+ result =
2166
+ API:: moduleImport ( "django" )
2167
+ .getMember ( "forms" )
2168
+ .getMember ( "models" )
2169
+ .getMember ( [ "InlineForeignKeyField" , "ModelChoiceField" , "ModelMultipleChoiceField" ] )
2170
+ .getASubclass * ( )
2016
2171
}
2017
2172
}
2018
2173
}
0 commit comments