66import django .core .checks
77from django import forms
88from django .db import models
9+ from django .db .models .fields import Field
10+ from django .db .models .fields .related import RelatedField
911
1012from .. import CheckId
1113from ..ast import FieldASTProtocol , MissingASTError
@@ -19,7 +21,7 @@ class CheckModelField(BaseCheck):
1921 @abstractmethod
2022 def apply (
2123 self ,
22- field : models . fields . Field ,
24+ field : Field ,
2325 * ,
2426 ast : FieldASTProtocol ,
2527 model : type [models .Model ],
@@ -56,7 +58,7 @@ class CheckFieldVerboseName(CheckModelField):
5658 Id = CheckId .X050
5759
5860 def apply (
59- self , field : models . fields . Field , ast : FieldASTProtocol , ** kwargs : Any
61+ self , field : Field , ast : FieldASTProtocol , ** kwargs : Any
6062 ) -> Iterator [django .core .checks .CheckMessage ]:
6163 if not ast .get_arg ("verbose_name" ):
6264 yield self .message (
@@ -71,7 +73,7 @@ class CheckFieldVerboseNameGettext(GetTextMixin, CheckModelField):
7173 Id = CheckId .X051
7274
7375 def apply (
74- self , field : models . fields . Field , ast : FieldASTProtocol , ** kwargs : Any
76+ self , field : Field , ast : FieldASTProtocol , ** kwargs : Any
7577 ) -> Iterator [django .core .checks .CheckMessage ]:
7678 verbose_name = ast .get_arg ("verbose_name" )
7779 if verbose_name and not (
@@ -98,7 +100,7 @@ def is_invalid(cls, value: object) -> bool:
98100 )
99101
100102 def apply (
101- self , field : models . fields . Field , ast : FieldASTProtocol , ** kwargs : Any
103+ self , field : Field , ast : FieldASTProtocol , ** kwargs : Any
102104 ) -> Iterator [django .core .checks .CheckMessage ]:
103105 verbose_name = ast .get_arg ("verbose_name" )
104106 if verbose_name and (
@@ -119,7 +121,7 @@ class CheckFieldHelpTextGettext(GetTextMixin, CheckModelField):
119121 Id = CheckId .X053
120122
121123 def apply (
122- self , field : models . fields . Field , ast : FieldASTProtocol , ** kwargs : Any
124+ self , field : Field , ast : FieldASTProtocol , ** kwargs : Any
123125 ) -> Iterator [django .core .checks .CheckMessage ]:
124126 help_text = ast .get_arg ("help_text" )
125127 if help_text and not (
@@ -137,7 +139,7 @@ class CheckFieldFileUploadTo(CheckModelField):
137139 Id = CheckId .X054
138140
139141 def apply (
140- self , field : models . fields . Field , ** kwargs : Any
142+ self , field : Field , ** kwargs : Any
141143 ) -> Iterator [django .core .checks .CheckMessage ]:
142144 if isinstance (field , models .FileField ):
143145 if not field .upload_to :
@@ -153,7 +155,7 @@ class CheckFieldTextNull(CheckModelField):
153155 Id = CheckId .X055
154156
155157 def apply (
156- self , field : models . fields . Field , ** kwargs : Any
158+ self , field : Field , ** kwargs : Any
157159 ) -> Iterator [django .core .checks .CheckMessage ]:
158160 if isinstance (field , (models .CharField , models .TextField )):
159161 if field .null :
@@ -170,7 +172,7 @@ class CheckFieldNullFalse(CheckModelField):
170172 Id = CheckId .X057
171173
172174 def apply (
173- self , field : models . fields . Field , ast : FieldASTProtocol , ** kwargs : Any
175+ self , field : Field , ast : FieldASTProtocol , ** kwargs : Any
174176 ) -> Iterator [django .core .checks .CheckMessage ]:
175177 if field .null is False and ast .get_arg ("null" ):
176178 yield self .message (
@@ -218,11 +220,11 @@ def get_fields_with_indexes_in_meta(
218220
219221 def apply (
220222 self ,
221- field : models . fields . Field ,
223+ field : Field ,
222224 ast : FieldASTProtocol ,
223225 model : type [models .Model ],
224226 ) -> Iterator [django .core .checks .CheckMessage ]:
225- if isinstance (field , models . fields . related . RelatedField ):
227+ if isinstance (field , RelatedField ):
226228 if field .many_to_one and not ast .get_arg ("db_index" ):
227229 if self .when == "indexes" :
228230 if field .name in self .get_fields_with_indexes_in_meta (model ):
@@ -245,11 +247,11 @@ class CheckFieldRelatedName(CheckModelField):
245247
246248 def apply (
247249 self ,
248- field : models . fields . Field ,
250+ field : Field ,
249251 ast : FieldASTProtocol ,
250252 model : type [models .Model ],
251253 ) -> Iterator [django .core .checks .CheckMessage ]:
252- if isinstance (field , models . fields . related . RelatedField ):
254+ if isinstance (field , RelatedField ):
253255 if not field .remote_field .related_name :
254256 yield self .message (
255257 "Related fields must set `related_name` explicitly." ,
@@ -263,7 +265,7 @@ class CheckFieldDefaultNull(CheckModelField):
263265 Id = CheckId .X059
264266
265267 def apply (
266- self , field : models . fields . Field , ast : FieldASTProtocol , ** kwargs : Any
268+ self , field : Field , ast : FieldASTProtocol , ** kwargs : Any
267269 ) -> Iterator [django .core .checks .CheckMessage ]:
268270 if field .null and field .default is None and ast .get_arg ("default" ):
269271 yield self .message (
@@ -285,7 +287,7 @@ def _repr_choice(value: Any) -> str:
285287
286288 def apply (
287289 self ,
288- field : models . fields . Field ,
290+ field : Field ,
289291 ast : FieldASTProtocol ,
290292 model : type [models .Model ],
291293 ) -> Iterator [django .core .checks .CheckMessage ]:
0 commit comments