2025-08-15 18:14:21 +00:00
<!DOCTYPE html>
< html lang = "en" data-content_root = "../../../../" >
< head >
< meta charset = "utf-8" / >
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
< title > django.db.models.fields — Evennia latest documentation< / title >
< link rel = "stylesheet" type = "text/css" href = "../../../../_static/pygments.css?v=d75fae25" / >
< link rel = "stylesheet" type = "text/css" href = "../../../../_static/nature.css?v=279e0f84" / >
< link rel = "stylesheet" type = "text/css" href = "../../../../_static/custom.css?v=e4a91a55" / >
< script src = "../../../../_static/documentation_options.js?v=c6e86fd7" > < / script >
< script src = "../../../../_static/doctools.js?v=9bcbadda" > < / script >
< script src = "../../../../_static/sphinx_highlight.js?v=dc90522c" > < / script >
< link rel = "icon" href = "../../../../_static/favicon.ico" / >
< link rel = "index" title = "Index" href = "../../../../genindex.html" / >
< link rel = "search" title = "Search" href = "../../../../search.html" / >
< / head > < body >
< div class = "related" role = "navigation" aria-label = "Related" >
< h3 > Navigation< / h3 >
< ul >
< li class = "right" style = "margin-right: 10px" >
< a href = "../../../../genindex.html" title = "General Index"
accesskey="I">index< / a > < / li >
< li class = "right" >
< a href = "../../../../py-modindex.html" title = "Python Module Index"
>modules< / a > |< / li >
< li class = "nav-item nav-item-0" > < a href = "../../../../index.html" > Evennia< / a > » < / li >
< li class = "nav-item nav-item-1" > < a href = "../../../index.html" accesskey = "U" > Module code< / a > » < / li >
< li class = "nav-item nav-item-this" > < a href = "" > django.db.models.fields< / a > < / li >
< / ul >
< / div >
< div class = "document" >
< div class = "documentwrapper" >
< div class = "bodywrapper" >
< div class = "body" role = "main" >
< h1 > Source code for django.db.models.fields< / h1 > < div class = "highlight" > < pre >
< span > < / span > < span class = "kn" > import< / span > < span class = "w" > < / span > < span class = "nn" > copy< / span >
< span class = "kn" > import< / span > < span class = "w" > < / span > < span class = "nn" > datetime< / span >
< span class = "kn" > import< / span > < span class = "w" > < / span > < span class = "nn" > decimal< / span >
< span class = "kn" > import< / span > < span class = "w" > < / span > < span class = "nn" > operator< / span >
< span class = "kn" > import< / span > < span class = "w" > < / span > < span class = "nn" > uuid< / span >
< span class = "kn" > import< / span > < span class = "w" > < / span > < span class = "nn" > warnings< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > base64< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > b64decode< / span > < span class = "p" > ,< / span > < span class = "n" > b64encode< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > collections.abc< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > Iterable< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > functools< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > partialmethod< / span > < span class = "p" > ,< / span > < span class = "n" > total_ordering< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > forms< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.apps< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > apps< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.conf< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > settings< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.core< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > checks< / span > < span class = "p" > ,< / span > < span class = "n" > exceptions< / span > < span class = "p" > ,< / span > < span class = "n" > validators< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > connections< / span > < span class = "p" > ,< / span > < span class = "n" > router< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db.models.constants< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > LOOKUP_SEP< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db.models.query_utils< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > DeferredAttribute< / span > < span class = "p" > ,< / span > < span class = "n" > RegisterLookupMixin< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db.utils< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > NotSupportedError< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.utils< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > timezone< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.utils.choices< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "p" > (< / span >
< span class = "n" > BlankChoiceIterator< / span > < span class = "p" > ,< / span >
< span class = "n" > CallableChoiceIterator< / span > < span class = "p" > ,< / span >
< span class = "n" > flatten_choices< / span > < span class = "p" > ,< / span >
< span class = "n" > normalize_choices< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.utils.datastructures< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > DictWrapper< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.utils.dateparse< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "p" > (< / span >
< span class = "n" > parse_date< / span > < span class = "p" > ,< / span >
< span class = "n" > parse_datetime< / span > < span class = "p" > ,< / span >
< span class = "n" > parse_duration< / span > < span class = "p" > ,< / span >
< span class = "n" > parse_time< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.utils.duration< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > duration_microseconds< / span > < span class = "p" > ,< / span > < span class = "n" > duration_string< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.utils.functional< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > Promise< / span > < span class = "p" > ,< / span > < span class = "n" > cached_property< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.utils.ipv6< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > MAX_IPV6_ADDRESS_LENGTH< / span > < span class = "p" > ,< / span > < span class = "n" > clean_ipv6_address< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.utils.text< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > capfirst< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.utils.translation< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > gettext_lazy< / span > < span class = "k" > as< / span > < span class = "n" > _< / span >
< span class = "n" > __all__< / span > < span class = "o" > =< / span > < span class = "p" > [< / span >
< span class = "s2" > " AutoField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " BLANK_CHOICE_DASH" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " BigAutoField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " BigIntegerField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " BinaryField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " BooleanField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " CharField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " CommaSeparatedIntegerField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " DateField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " DateTimeField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " DecimalField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " DurationField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " EmailField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " Empty" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " Field" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " FilePathField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " FloatField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " GenericIPAddressField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " IPAddressField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " IntegerField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " NOT_PROVIDED" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " NullBooleanField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " PositiveBigIntegerField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " PositiveIntegerField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " PositiveSmallIntegerField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " SlugField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " SmallAutoField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " SmallIntegerField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " TextField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " TimeField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " URLField" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " UUIDField" < / span > < span class = "p" > ,< / span >
< span class = "p" > ]< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Empty< / span > < span class = "p" > :< / span >
< span class = "k" > pass< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > NOT_PROVIDED< / span > < span class = "p" > :< / span >
< span class = "k" > pass< / span >
< span class = "c1" > # The values to use for " blank" in SelectFields. Will be appended to the start< / span >
< span class = "c1" > # of most " choices" lists.< / span >
< span class = "n" > BLANK_CHOICE_DASH< / span > < span class = "o" > =< / span > < span class = "p" > [(< / span > < span class = "s2" > " " < / span > < span class = "p" > ,< / span > < span class = "s2" > " ---------" < / span > < span class = "p" > )]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _load_field< / span > < span class = "p" > (< / span > < span class = "n" > app_label< / span > < span class = "p" > ,< / span > < span class = "n" > model_name< / span > < span class = "p" > ,< / span > < span class = "n" > field_name< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > apps< / span > < span class = "o" > .< / span > < span class = "n" > get_model< / span > < span class = "p" > (< / span > < span class = "n" > app_label< / span > < span class = "p" > ,< / span > < span class = "n" > model_name< / span > < span class = "p" > )< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > get_field< / span > < span class = "p" > (< / span > < span class = "n" > field_name< / span > < span class = "p" > )< / span >
< span class = "c1" > # A guide to Field parameters:< / span >
< span class = "c1" > #< / span >
< span class = "c1" > # * name: The name of the field specified in the model.< / span >
< span class = "c1" > # * attname: The attribute to use on the model object. This is the same as< / span >
< span class = "c1" > # " name" , except in the case of ForeignKeys, where " _id" is< / span >
< span class = "c1" > # appended.< / span >
< span class = "c1" > # * db_column: The db_column specified in the model (or None).< / span >
< span class = "c1" > # * column: The database column for this field. This is the same as< / span >
< span class = "c1" > # " attname" , except if db_column is specified.< / span >
< span class = "c1" > #< / span >
< span class = "c1" > # Code that introspects values, or does other dynamic things, should use< / span >
< span class = "c1" > # attname. For example, this gets the primary key value of object " obj" :< / span >
< span class = "c1" > #< / span >
< span class = "c1" > # getattr(obj, opts.pk.attname)< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _empty< / span > < span class = "p" > (< / span > < span class = "n" > of_cls< / span > < span class = "p" > ):< / span >
< span class = "n" > new< / span > < span class = "o" > =< / span > < span class = "n" > Empty< / span > < span class = "p" > ()< / span >
< span class = "n" > new< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > =< / span > < span class = "n" > of_cls< / span >
< span class = "k" > return< / span > < span class = "n" > new< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > return_None< / span > < span class = "p" > ():< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "nd" > @total_ordering< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > Field< / span > < span class = "p" > (< / span > < span class = "n" > RegisterLookupMixin< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Base class for all field types" " " < / span >
< span class = "c1" > # Designates whether empty strings fundamentally are allowed at the< / span >
< span class = "c1" > # database level.< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "n" > empty_values< / span > < span class = "o" > =< / span > < span class = "nb" > list< / span > < span class = "p" > (< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > EMPTY_VALUES< / span > < span class = "p" > )< / span >
< span class = "c1" > # These track each time a Field instance is created. Used to retain order.< / span >
< span class = "c1" > # The auto_creation_counter is used for fields that Django implicitly< / span >
< span class = "c1" > # creates, creation_counter is used for all user-specified fields.< / span >
< span class = "n" > creation_counter< / span > < span class = "o" > =< / span > < span class = "mi" > 0< / span >
< span class = "n" > auto_creation_counter< / span > < span class = "o" > =< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span >
< span class = "n" > default_validators< / span > < span class = "o" > =< / span > < span class = "p" > []< / span > < span class = "c1" > # Default set of validators< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid_choice" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Value < / span > < span class = "si" > %(value)r< / span > < span class = "s2" > is not a valid choice." < / span > < span class = "p" > ),< / span >
< span class = "s2" > " null" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " This field cannot be null." < / span > < span class = "p" > ),< / span >
< span class = "s2" > " blank" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " This field cannot be blank." < / span > < span class = "p" > ),< / span >
< span class = "s2" > " unique" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " < / span > < span class = "si" > %(model_name)s< / span > < span class = "s2" > with this < / span > < span class = "si" > %(field_label)s< / span > < span class = "s2" > already exists." < / span > < span class = "p" > ),< / span >
< span class = "s2" > " unique_for_date" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span >
< span class = "c1" > # Translators: The ' lookup_type' is one of ' date' , ' year' or< / span >
< span class = "c1" > # ' month' . Eg: " Title must be unique for pub_date year" < / span >
< span class = "s2" > " < / span > < span class = "si" > %(field_label)s< / span > < span class = "s2" > must be unique for " < / span >
< span class = "s2" > " < / span > < span class = "si" > %(date_field_label)s< / span > < span class = "s2" > < / span > < span class = "si" > %(lookup_type)s< / span > < span class = "s2" > ." < / span >
< span class = "p" > ),< / span >
< span class = "p" > }< / span >
< span class = "n" > system_check_deprecated_details< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > system_check_removed_details< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "c1" > # Attributes that don' t affect a column definition.< / span >
< span class = "c1" > # These attributes are ignored when altering the field.< / span >
< span class = "n" > non_db_attrs< / span > < span class = "o" > =< / span > < span class = "p" > (< / span >
< span class = "s2" > " blank" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " choices" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " db_column" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " editable" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " error_messages" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " help_text" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " limit_choices_to" < / span > < span class = "p" > ,< / span >
< span class = "c1" > # Database-level options are not supported, see #21961.< / span >
< span class = "s2" > " on_delete" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " related_name" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " related_query_name" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " validators" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " verbose_name" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "c1" > # Field flags< / span >
< span class = "n" > hidden< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > many_to_many< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > many_to_one< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > one_to_many< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > one_to_one< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > related_model< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > generated< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > descriptor_class< / span > < span class = "o" > =< / span > < span class = "n" > DeferredAttribute< / span >
< span class = "c1" > # Generic field type description, usually overridden by subclasses< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _description< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Field of type: < / span > < span class = "si" > %(field_type)s< / span > < span class = "s2" > " < / span > < span class = "p" > )< / span > < span class = "o" > %< / span > < span class = "p" > {< / span >
< span class = "s2" > " field_type" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "nb" > property< / span > < span class = "p" > (< / span > < span class = "n" > _description< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "n" > verbose_name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > primary_key< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "n" > max_length< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > unique< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "n" > blank< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "n" > null< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "n" > db_index< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "n" > rel< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > default< / span > < span class = "o" > =< / span > < span class = "n" > NOT_PROVIDED< / span > < span class = "p" > ,< / span >
< span class = "n" > editable< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span > < span class = "p" > ,< / span >
< span class = "n" > serialize< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span > < span class = "p" > ,< / span >
< span class = "n" > unique_for_date< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > unique_for_month< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > unique_for_year< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > choices< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > help_text< / span > < span class = "o" > =< / span > < span class = "s2" > " " < / span > < span class = "p" > ,< / span >
< span class = "n" > db_column< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > db_tablespace< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > auto_created< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "n" > validators< / span > < span class = "o" > =< / span > < span class = "p" > (),< / span >
< span class = "n" > error_messages< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > db_comment< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > db_default< / span > < span class = "o" > =< / span > < span class = "n" > NOT_PROVIDED< / span > < span class = "p" > ,< / span >
< span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "n" > name< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > verbose_name< / span > < span class = "o" > =< / span > < span class = "n" > verbose_name< / span > < span class = "c1" > # May be set by set_attributes_from_name< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _verbose_name< / span > < span class = "o" > =< / span > < span class = "n" > verbose_name< / span > < span class = "c1" > # Store original for deconstruction< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > primary_key< / span > < span class = "o" > =< / span > < span class = "n" > primary_key< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _unique< / span > < span class = "o" > =< / span > < span class = "n" > max_length< / span > < span class = "p" > ,< / span > < span class = "n" > unique< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > blank< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > null< / span > < span class = "o" > =< / span > < span class = "n" > blank< / span > < span class = "p" > ,< / span > < span class = "n" > null< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "o" > =< / span > < span class = "n" > rel< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > is_relation< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span > < span class = "o" > =< / span > < span class = "n" > default< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_default< / span > < span class = "o" > =< / span > < span class = "n" > db_default< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > editable< / span > < span class = "o" > =< / span > < span class = "n" > editable< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > serialize< / span > < span class = "o" > =< / span > < span class = "n" > serialize< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > unique_for_date< / span > < span class = "o" > =< / span > < span class = "n" > unique_for_date< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > unique_for_month< / span > < span class = "o" > =< / span > < span class = "n" > unique_for_month< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > unique_for_year< / span > < span class = "o" > =< / span > < span class = "n" > unique_for_year< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "o" > =< / span > < span class = "n" > choices< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > help_text< / span > < span class = "o" > =< / span > < span class = "n" > help_text< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_index< / span > < span class = "o" > =< / span > < span class = "n" > db_index< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_column< / span > < span class = "o" > =< / span > < span class = "n" > db_column< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_comment< / span > < span class = "o" > =< / span > < span class = "n" > db_comment< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _db_tablespace< / span > < span class = "o" > =< / span > < span class = "n" > db_tablespace< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_created< / span > < span class = "o" > =< / span > < span class = "n" > auto_created< / span >
< span class = "c1" > # Adjust the appropriate creation counter, and save our local copy.< / span >
< span class = "k" > if< / span > < span class = "n" > auto_created< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span > < span class = "o" > =< / span > < span class = "n" > Field< / span > < span class = "o" > .< / span > < span class = "n" > auto_creation_counter< / span >
< span class = "n" > Field< / span > < span class = "o" > .< / span > < span class = "n" > auto_creation_counter< / span > < span class = "o" > -=< / span > < span class = "mi" > 1< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span > < span class = "o" > =< / span > < span class = "n" > Field< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span >
< span class = "n" > Field< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span > < span class = "o" > +=< / span > < span class = "mi" > 1< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _validators< / span > < span class = "o" > =< / span > < span class = "nb" > list< / span > < span class = "p" > (< / span > < span class = "n" > validators< / span > < span class = "p" > )< / span > < span class = "c1" > # Store for deconstruction later< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _error_messages< / span > < span class = "o" > =< / span > < span class = "n" > error_messages< / span > < span class = "c1" > # Store for deconstruction later< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __str__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Return " app_label.model_label.field_name" for fields attached to< / span >
< span class = "sd" > models.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s2" > " model" < / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __str__< / span > < span class = "p" > ()< / span >
< span class = "n" > model< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span >
< span class = "k" > return< / span > < span class = "s2" > " < / span > < span class = "si" > %s< / span > < span class = "s2" > .< / span > < span class = "si" > %s< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > label< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __repr__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Display the module, class, and name of the field." " " < / span >
< span class = "n" > path< / span > < span class = "o" > =< / span > < span class = "s2" > " < / span > < span class = "si" > %s< / span > < span class = "s2" > .< / span > < span class = "si" > %s< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __module__< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __qualname__< / span > < span class = "p" > )< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s2" > " name" < / span > < span class = "p" > ,< / span > < span class = "kc" > None< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > name< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "s2" > " < < / span > < span class = "si" > %s< / span > < span class = "s2" > : < / span > < span class = "si" > %s< / span > < span class = "s2" > > " < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "s2" > " < < / span > < span class = "si" > %s< / span > < span class = "s2" > > " < / span > < span class = "o" > %< / span > < span class = "n" > path< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_field_name< / span > < span class = "p" > (),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_choices< / span > < span class = "p" > (),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_db_default< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_db_index< / span > < span class = "p" > (),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_db_comment< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_null_allowed_for_primary_keys< / span > < span class = "p" > (),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_backend_specific_checks< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_validators< / span > < span class = "p" > (),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_deprecation_details< / span > < span class = "p" > (),< / span >
< span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_field_name< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Check if field name is valid, i.e. 1) does not end with an< / span >
< span class = "sd" > underscore, 2) does not contain " __" and 3) is not " pk" .< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "o" > .< / span > < span class = "n" > endswith< / span > < span class = "p" > (< / span > < span class = "s2" > " _" < / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " Field names must not end with an underscore." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E001" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > elif< / span > < span class = "n" > LOOKUP_SEP< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s1" > ' Field names must not contain " < / span > < span class = "si" > %s< / span > < span class = "s1" > " .' < / span > < span class = "o" > %< / span > < span class = "n" > LOOKUP_SEP< / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E002" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > elif< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "o" > ==< / span > < span class = "s2" > " pk" < / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " ' pk' is a reserved word that cannot be used as a field name." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E003" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _choices_is_value< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "p" > (< / span > < span class = "nb" > str< / span > < span class = "p" > ,< / span > < span class = "n" > Promise< / span > < span class = "p" > ))< / span > < span class = "ow" > or< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > Iterable< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_choices< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "p" > ,< / span > < span class = "n" > Iterable< / span > < span class = "p" > )< / span > < span class = "ow" > or< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "p" > ,< / span > < span class = "nb" > str< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " ' choices' must be a mapping (e.g. a dictionary) or an iterable " < / span >
< span class = "s2" > " (e.g. a list or tuple)." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E004" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "n" > choice_max_length< / span > < span class = "o" > =< / span > < span class = "mi" > 0< / span >
< span class = "c1" > # Expect [group_name, [value, display]]< / span >
< span class = "k" > for< / span > < span class = "n" > choices_group< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "p" > :< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > group_name< / span > < span class = "p" > ,< / span > < span class = "n" > group_choices< / span > < span class = "o" > =< / span > < span class = "n" > choices_group< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > TypeError< / span > < span class = "p" > ,< / span > < span class = "ne" > ValueError< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Containing non-pairs< / span >
< span class = "k" > break< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > all< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _choices_is_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span > < span class = "ow" > and< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _choices_is_value< / span > < span class = "p" > (< / span > < span class = "n" > human_name< / span > < span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > human_name< / span > < span class = "ow" > in< / span > < span class = "n" > group_choices< / span >
< span class = "p" > ):< / span >
< span class = "k" > break< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "n" > group_choices< / span > < span class = "p" > :< / span >
< span class = "n" > choice_max_length< / span > < span class = "o" > =< / span > < span class = "nb" > max< / span > < span class = "p" > (< / span >
< span class = "p" > [< / span >
< span class = "n" > choice_max_length< / span > < span class = "p" > ,< / span >
< span class = "o" > *< / span > < span class = "p" > (< / span >
< span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > _< / span > < span class = "ow" > in< / span > < span class = "n" > group_choices< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "nb" > str< / span > < span class = "p" > )< / span >
< span class = "p" > ),< / span >
< span class = "p" > ]< / span >
< span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > TypeError< / span > < span class = "p" > ,< / span > < span class = "ne" > ValueError< / span > < span class = "p" > ):< / span >
< span class = "c1" > # No groups, choices in the form [value, display]< / span >
< span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > human_name< / span > < span class = "o" > =< / span > < span class = "n" > group_name< / span > < span class = "p" > ,< / span > < span class = "n" > group_choices< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _choices_is_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span > < span class = "ow" > or< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _choices_is_value< / span > < span class = "p" > (< / span >
< span class = "n" > human_name< / span >
< span class = "p" > ):< / span >
< span class = "k" > break< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "nb" > str< / span > < span class = "p" > ):< / span >
< span class = "n" > choice_max_length< / span > < span class = "o" > =< / span > < span class = "nb" > max< / span > < span class = "p" > (< / span > < span class = "n" > choice_max_length< / span > < span class = "p" > ,< / span > < span class = "nb" > len< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ))< / span >
< span class = "c1" > # Special case: choices=[' ab' ]< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > choices_group< / span > < span class = "p" > ,< / span > < span class = "nb" > str< / span > < span class = "p" > ):< / span >
< span class = "k" > break< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "n" > choice_max_length< / span > < span class = "o" > > < / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " ' max_length' is too small to fit the longest value " < / span >
< span class = "s2" > " in ' choices' (< / span > < span class = "si" > %d< / span > < span class = "s2" > characters)." < / span > < span class = "o" > %< / span > < span class = "n" > choice_max_length< / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E009" < / span > < span class = "p" > ,< / span >
< span class = "p" > ),< / span >
< span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " ' choices' must be a mapping of actual values to human readable names " < / span >
< span class = "s2" > " or an iterable containing (actual value, human readable name) tuples." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E005" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_db_default< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > databases< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db.models.expressions< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > Value< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span >
< span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_db_default< / span > < span class = "p" > ()< / span >
< span class = "ow" > or< / span > < span class = "p" > (< / span >
< span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_default< / span > < span class = "p" > ,< / span > < span class = "n" > Value< / span > < span class = "p" > )< / span >
< span class = "ow" > or< / span > < span class = "ow" > not< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_default< / span > < span class = "p" > ,< / span > < span class = "s2" > " resolve_expression" < / span > < span class = "p" > )< / span >
< span class = "p" > )< / span >
< span class = "ow" > or< / span > < span class = "n" > databases< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span >
< span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "n" > errors< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "k" > for< / span > < span class = "n" > db< / span > < span class = "ow" > in< / span > < span class = "n" > databases< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > router< / span > < span class = "o" > .< / span > < span class = "n" > allow_migrate_model< / span > < span class = "p" > (< / span > < span class = "n" > db< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "p" > ):< / span >
< span class = "k" > continue< / span >
< span class = "n" > connection< / span > < span class = "o" > =< / span > < span class = "n" > connections< / span > < span class = "p" > [< / span > < span class = "n" > db< / span > < span class = "p" > ]< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _db_default_expression< / span > < span class = "p" > ,< / span > < span class = "s2" > " allowed_default" < / span > < span class = "p" > ,< / span > < span class = "kc" > False< / span > < span class = "p" > )< / span > < span class = "ow" > and< / span > < span class = "p" > (< / span >
< span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > supports_expression_defaults< / span >
< span class = "p" > ):< / span >
< span class = "n" > msg< / span > < span class = "o" > =< / span > < span class = "sa" > f< / span > < span class = "s2" > " < / span > < span class = "si" > {< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_default< / span > < span class = "si" > }< / span > < span class = "s2" > cannot be used in db_default." < / span >
< span class = "n" > errors< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span > < span class = "n" > msg< / span > < span class = "p" > ,< / span > < span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E012" < / span > < span class = "p" > ))< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "p" > (< / span >
< span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > supports_expression_defaults< / span >
< span class = "ow" > or< / span > < span class = "s2" > " supports_expression_defaults" < / span >
< span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > required_db_features< / span >
< span class = "p" > ):< / span >
< span class = "n" > msg< / span > < span class = "o" > =< / span > < span class = "p" > (< / span >
< span class = "sa" > f< / span > < span class = "s2" > " < / span > < span class = "si" > {< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > display_name< / span > < span class = "si" > }< / span > < span class = "s2" > does not support default database " < / span >
< span class = "s2" > " values with expressions (db_default)." < / span >
< span class = "p" > )< / span >
< span class = "n" > errors< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span > < span class = "n" > msg< / span > < span class = "p" > ,< / span > < span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E011" < / span > < span class = "p" > ))< / span >
< span class = "k" > return< / span > < span class = "n" > errors< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_db_index< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_index< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "kc" > True< / span > < span class = "p" > ,< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " ' db_index' must be None, True or False." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E006" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_db_comment< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > databases< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_comment< / span > < span class = "ow" > or< / span > < span class = "ow" > not< / span > < span class = "n" > databases< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "n" > errors< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "k" > for< / span > < span class = "n" > db< / span > < span class = "ow" > in< / span > < span class = "n" > databases< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > router< / span > < span class = "o" > .< / span > < span class = "n" > allow_migrate_model< / span > < span class = "p" > (< / span > < span class = "n" > db< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "p" > ):< / span >
< span class = "k" > continue< / span >
< span class = "n" > connection< / span > < span class = "o" > =< / span > < span class = "n" > connections< / span > < span class = "p" > [< / span > < span class = "n" > db< / span > < span class = "p" > ]< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "p" > (< / span >
< span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > supports_comments< / span >
< span class = "ow" > or< / span > < span class = "s2" > " supports_comments" < / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > required_db_features< / span >
< span class = "p" > ):< / span >
< span class = "n" > errors< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Warning< / span > < span class = "p" > (< / span >
< span class = "sa" > f< / span > < span class = "s2" > " < / span > < span class = "si" > {< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > display_name< / span > < span class = "si" > }< / span > < span class = "s2" > does not support comments on " < / span >
< span class = "sa" > f< / span > < span class = "s2" > " columns (db_comment)." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.W163" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > errors< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_null_allowed_for_primary_keys< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > primary_key< / span >
< span class = "ow" > and< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > null< / span >
< span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > interprets_empty_strings_as_nulls< / span >
< span class = "p" > ):< / span >
< span class = "c1" > # We cannot reliably check this for backends like Oracle which< / span >
< span class = "c1" > # consider NULL and ' ' to be equal (and thus set up< / span >
< span class = "c1" > # character-based fields a little differently).< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " Primary keys must not have null=True." < / span > < span class = "p" > ,< / span >
< span class = "n" > hint< / span > < span class = "o" > =< / span > < span class = "p" > (< / span >
< span class = "s2" > " Set null=False on the field, or " < / span >
< span class = "s2" > " remove primary_key=True argument." < / span >
< span class = "p" > ),< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E007" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_backend_specific_checks< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > databases< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > databases< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "n" > errors< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "k" > for< / span > < span class = "n" > alias< / span > < span class = "ow" > in< / span > < span class = "n" > databases< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > router< / span > < span class = "o" > .< / span > < span class = "n" > allow_migrate_model< / span > < span class = "p" > (< / span > < span class = "n" > alias< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "p" > ):< / span >
< span class = "n" > errors< / span > < span class = "o" > .< / span > < span class = "n" > extend< / span > < span class = "p" > (< / span > < span class = "n" > connections< / span > < span class = "p" > [< / span > < span class = "n" > alias< / span > < span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > validation< / span > < span class = "o" > .< / span > < span class = "n" > check_field< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ))< / span >
< span class = "k" > return< / span > < span class = "n" > errors< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_validators< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > errors< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "k" > for< / span > < span class = "n" > i< / span > < span class = "p" > ,< / span > < span class = "n" > validator< / span > < span class = "ow" > in< / span > < span class = "nb" > enumerate< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > validators< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > callable< / span > < span class = "p" > (< / span > < span class = "n" > validator< / span > < span class = "p" > ):< / span >
< span class = "n" > errors< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " All ' validators' must be callable." < / span > < span class = "p" > ,< / span >
< span class = "n" > hint< / span > < span class = "o" > =< / span > < span class = "p" > (< / span >
< span class = "s2" > " validators[< / span > < span class = "si" > {i}< / span > < span class = "s2" > ] (< / span > < span class = "si" > {repr}< / span > < span class = "s2" > ) isn' t a function or " < / span >
< span class = "s2" > " instance of a validator class." < / span > < span class = "o" > .< / span > < span class = "n" > format< / span > < span class = "p" > (< / span >
< span class = "n" > i< / span > < span class = "o" > =< / span > < span class = "n" > i< / span > < span class = "p" > ,< / span >
< span class = "nb" > repr< / span > < span class = "o" > =< / span > < span class = "nb" > repr< / span > < span class = "p" > (< / span > < span class = "n" > validator< / span > < span class = "p" > ),< / span >
< span class = "p" > )< / span >
< span class = "p" > ),< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E008" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > errors< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_deprecation_details< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > system_check_removed_details< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > system_check_removed_details< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span >
< span class = "s2" > " msg" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " < / span > < span class = "si" > %s< / span > < span class = "s2" > has been removed except for support in historical " < / span >
< span class = "s2" > " migrations." < / span > < span class = "o" > %< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span > < span class = "p" > ,< / span >
< span class = "p" > ),< / span >
< span class = "n" > hint< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > system_check_removed_details< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "s2" > " hint" < / span > < span class = "p" > ),< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > system_check_removed_details< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "s2" > " id" < / span > < span class = "p" > ,< / span > < span class = "s2" > " fields.EXXX" < / span > < span class = "p" > ),< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > elif< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > system_check_deprecated_details< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Warning< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > system_check_deprecated_details< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span >
< span class = "s2" > " msg" < / span > < span class = "p" > ,< / span > < span class = "s2" > " < / span > < span class = "si" > %s< / span > < span class = "s2" > has been deprecated." < / span > < span class = "o" > %< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span >
< span class = "p" > ),< / span >
< span class = "n" > hint< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > system_check_deprecated_details< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "s2" > " hint" < / span > < span class = "p" > ),< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > system_check_deprecated_details< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "s2" > " id" < / span > < span class = "p" > ,< / span > < span class = "s2" > " fields.WXXX" < / span > < span class = "p" > ),< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_col< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > alias< / span > < span class = "p" > ,< / span > < span class = "n" > output_field< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > alias< / span > < span class = "o" > ==< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > db_table< / span > < span class = "ow" > and< / span > < span class = "p" > (< / span >
< span class = "n" > output_field< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "ow" > or< / span > < span class = "n" > output_field< / span > < span class = "o" > ==< / span > < span class = "bp" > self< / span >
< span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > cached_col< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db.models.expressions< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > Col< / span >
< span class = "k" > return< / span > < span class = "n" > Col< / span > < span class = "p" > (< / span > < span class = "n" > alias< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > output_field< / span > < span class = "p" > )< / span >
< span class = "nd" > @property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > choices< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _choices< / span >
< span class = "nd" > @choices< / span > < span class = "o" > .< / span > < span class = "n" > setter< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > choices< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _choices< / span > < span class = "o" > =< / span > < span class = "n" > normalize_choices< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "nd" > @cached_property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > cached_col< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db.models.expressions< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > Col< / span >
< span class = "k" > return< / span > < span class = "n" > Col< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > db_table< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > select_format< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > compiler< / span > < span class = "p" > ,< / span > < span class = "n" > sql< / span > < span class = "p" > ,< / span > < span class = "n" > params< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Custom format for select clauses. For example, GIS columns need to be< / span >
< span class = "sd" > selected as AsText(table.col) on MySQL as the table.col data can' t be< / span >
< span class = "sd" > used by Django.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > return< / span > < span class = "n" > sql< / span > < span class = "p" > ,< / span > < span class = "n" > params< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Return enough information to recreate the field as a 4-tuple:< / span >
< span class = "sd" > * The name of the field on the model, if contribute_to_class() has< / span >
< span class = "sd" > been run.< / span >
< span class = "sd" > * The import path of the field, including the class, e.g.< / span >
< span class = "sd" > django.db.models.IntegerField. This should be the most portable< / span >
< span class = "sd" > version, so less specific may be better.< / span >
< span class = "sd" > * A list of positional arguments.< / span >
< span class = "sd" > * A dict of keyword arguments.< / span >
< span class = "sd" > Note that the positional or keyword arguments must contain values of< / span >
< span class = "sd" > the following types (including inner values of collection types):< / span >
< span class = "sd" > * None, bool, str, int, float, complex, set, frozenset, list, tuple,< / span >
< span class = "sd" > dict< / span >
< span class = "sd" > * UUID< / span >
< span class = "sd" > * datetime.datetime (naive), datetime.date< / span >
< span class = "sd" > * top-level classes, top-level functions - will be referenced by their< / span >
< span class = "sd" > full import path< / span >
< span class = "sd" > * Storage instances - these have their own deconstruct() method< / span >
< span class = "sd" > This is because the values here must be serialized into a text format< / span >
< span class = "sd" > (possibly new Python code, possibly JSON) and these are the only types< / span >
< span class = "sd" > with encoding handlers defined.< / span >
< span class = "sd" > There' s no need to return the exact way the field was instantiated this< / span >
< span class = "sd" > time, just ensure that the resulting field is the same - prefer keyword< / span >
< span class = "sd" > arguments over positional ones, and omit parameters with their default< / span >
< span class = "sd" > values.< / span >
< span class = "sd" > " " " < / span >
< span class = "c1" > # Short-form way of fetching all the default parameters< / span >
< span class = "n" > keywords< / span > < span class = "o" > =< / span > < span class = "p" > {}< / span >
< span class = "n" > possibles< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " verbose_name" < / span > < span class = "p" > :< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "s2" > " primary_key" < / span > < span class = "p" > :< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "s2" > " max_length" < / span > < span class = "p" > :< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "s2" > " unique" < / span > < span class = "p" > :< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "s2" > " blank" < / span > < span class = "p" > :< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "s2" > " null" < / span > < span class = "p" > :< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "s2" > " db_index" < / span > < span class = "p" > :< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "s2" > " default" < / span > < span class = "p" > :< / span > < span class = "n" > NOT_PROVIDED< / span > < span class = "p" > ,< / span >
< span class = "s2" > " db_default" < / span > < span class = "p" > :< / span > < span class = "n" > NOT_PROVIDED< / span > < span class = "p" > ,< / span >
< span class = "s2" > " editable" < / span > < span class = "p" > :< / span > < span class = "kc" > True< / span > < span class = "p" > ,< / span >
< span class = "s2" > " serialize" < / span > < span class = "p" > :< / span > < span class = "kc" > True< / span > < span class = "p" > ,< / span >
< span class = "s2" > " unique_for_date" < / span > < span class = "p" > :< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "s2" > " unique_for_month" < / span > < span class = "p" > :< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "s2" > " unique_for_year" < / span > < span class = "p" > :< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "s2" > " choices" < / span > < span class = "p" > :< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "s2" > " help_text" < / span > < span class = "p" > :< / span > < span class = "s2" > " " < / span > < span class = "p" > ,< / span >
< span class = "s2" > " db_column" < / span > < span class = "p" > :< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "s2" > " db_comment" < / span > < span class = "p" > :< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "s2" > " db_tablespace" < / span > < span class = "p" > :< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "s2" > " auto_created" < / span > < span class = "p" > :< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "s2" > " validators" < / span > < span class = "p" > :< / span > < span class = "p" > [],< / span >
< span class = "s2" > " error_messages" < / span > < span class = "p" > :< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "n" > attr_overrides< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " unique" < / span > < span class = "p" > :< / span > < span class = "s2" > " _unique" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " error_messages" < / span > < span class = "p" > :< / span > < span class = "s2" > " _error_messages" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " validators" < / span > < span class = "p" > :< / span > < span class = "s2" > " _validators" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " verbose_name" < / span > < span class = "p" > :< / span > < span class = "s2" > " _verbose_name" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " db_tablespace" < / span > < span class = "p" > :< / span > < span class = "s2" > " _db_tablespace" < / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "n" > equals_comparison< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " choices" < / span > < span class = "p" > ,< / span > < span class = "s2" > " validators" < / span > < span class = "p" > }< / span >
< span class = "k" > for< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > default< / span > < span class = "ow" > in< / span > < span class = "n" > possibles< / span > < span class = "o" > .< / span > < span class = "n" > items< / span > < span class = "p" > ():< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > attr_overrides< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ))< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > CallableChoiceIterator< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > value< / span > < span class = "o" > .< / span > < span class = "n" > func< / span >
< span class = "c1" > # Do correct kind of comparison< / span >
< span class = "k" > if< / span > < span class = "n" > name< / span > < span class = "ow" > in< / span > < span class = "n" > equals_comparison< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "o" > !=< / span > < span class = "n" > default< / span > < span class = "p" > :< / span >
< span class = "n" > keywords< / span > < span class = "p" > [< / span > < span class = "n" > name< / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "n" > value< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "n" > default< / span > < span class = "p" > :< / span >
< span class = "n" > keywords< / span > < span class = "p" > [< / span > < span class = "n" > name< / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "n" > value< / span >
< span class = "c1" > # Work out path - we shorten it for known Django core fields< / span >
< span class = "n" > path< / span > < span class = "o" > =< / span > < span class = "s2" > " < / span > < span class = "si" > %s< / span > < span class = "s2" > .< / span > < span class = "si" > %s< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __module__< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __qualname__< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.related" < / span > < span class = "p" > ):< / span >
< span class = "n" > path< / span > < span class = "o" > =< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.related" < / span > < span class = "p" > ,< / span > < span class = "s2" > " django.db.models" < / span > < span class = "p" > )< / span >
< span class = "k" > elif< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.files" < / span > < span class = "p" > ):< / span >
< span class = "n" > path< / span > < span class = "o" > =< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.files" < / span > < span class = "p" > ,< / span > < span class = "s2" > " django.db.models" < / span > < span class = "p" > )< / span >
< span class = "k" > elif< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.generated" < / span > < span class = "p" > ):< / span >
< span class = "n" > path< / span > < span class = "o" > =< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.generated" < / span > < span class = "p" > ,< / span > < span class = "s2" > " django.db.models" < / span > < span class = "p" > )< / span >
< span class = "k" > elif< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.json" < / span > < span class = "p" > ):< / span >
< span class = "n" > path< / span > < span class = "o" > =< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.json" < / span > < span class = "p" > ,< / span > < span class = "s2" > " django.db.models" < / span > < span class = "p" > )< / span >
< span class = "k" > elif< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.proxy" < / span > < span class = "p" > ):< / span >
< span class = "n" > path< / span > < span class = "o" > =< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.proxy" < / span > < span class = "p" > ,< / span > < span class = "s2" > " django.db.models" < / span > < span class = "p" > )< / span >
< span class = "k" > elif< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.composite" < / span > < span class = "p" > ):< / span >
< span class = "n" > path< / span > < span class = "o" > =< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields.composite" < / span > < span class = "p" > ,< / span > < span class = "s2" > " django.db.models" < / span > < span class = "p" > )< / span >
< span class = "k" > elif< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields" < / span > < span class = "p" > ):< / span >
< span class = "n" > path< / span > < span class = "o" > =< / span > < span class = "n" > path< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s2" > " django.db.models.fields" < / span > < span class = "p" > ,< / span > < span class = "s2" > " django.db.models" < / span > < span class = "p" > )< / span >
< span class = "c1" > # Return basic info - other fields should override this.< / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "p" > [],< / span > < span class = "n" > keywords< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > clone< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Uses deconstruct() to clone a new copy of this Field.< / span >
< span class = "sd" > Will not preserve any class attachments/attribute names.< / span >
< span class = "sd" > " " " < / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __eq__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Needed for @total_ordering< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span > < span class = "o" > ==< / span > < span class = "n" > other< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span > < span class = "ow" > and< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s2" > " model" < / span > < span class = "p" > ,< / span > < span class = "kc" > None< / span >
< span class = "p" > )< / span > < span class = "o" > ==< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "s2" > " model" < / span > < span class = "p" > ,< / span > < span class = "kc" > None< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __lt__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > other< / span > < span class = "p" > ):< / span >
< span class = "c1" > # This is needed because bisect does not take a comparison function.< / span >
< span class = "c1" > # Order by creation_counter first for backward compatibility.< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span > < span class = "o" > !=< / span > < span class = "n" > other< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span >
< span class = "ow" > or< / span > < span class = "ow" > not< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s2" > " model" < / span > < span class = "p" > )< / span >
< span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "s2" > " model" < / span > < span class = "p" > )< / span >
< span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span > < span class = "o" > < < / span > < span class = "n" > other< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span >
< span class = "k" > elif< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s2" > " model" < / span > < span class = "p" > )< / span > < span class = "o" > !=< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "n" > other< / span > < span class = "p" > ,< / span > < span class = "s2" > " model" < / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "ow" > not< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s2" > " model" < / span > < span class = "p" > )< / span > < span class = "c1" > # Order no-model fields first< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "c1" > # creation_counter' s are equal, compare only models.< / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > app_label< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > model_name< / span > < span class = "p" > )< / span > < span class = "o" > < < / span > < span class = "p" > (< / span >
< span class = "n" > other< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > app_label< / span > < span class = "p" > ,< / span >
< span class = "n" > other< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > model_name< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > NotImplemented< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __hash__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > hash< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __deepcopy__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > memodict< / span > < span class = "p" > ):< / span >
< span class = "c1" > # We don' t have to deepcopy very much here, since most things are not< / span >
< span class = "c1" > # intended to be altered after initial creation.< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "n" > copy< / span > < span class = "o" > .< / span > < span class = "n" > copy< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "p" > :< / span >
< span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "o" > =< / span > < span class = "n" > copy< / span > < span class = "o" > .< / span > < span class = "n" > copy< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "p" > ,< / span > < span class = "s2" > " field" < / span > < span class = "p" > )< / span > < span class = "ow" > and< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "o" > .< / span > < span class = "n" > field< / span > < span class = "ow" > is< / span > < span class = "bp" > self< / span > < span class = "p" > :< / span >
< span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "o" > .< / span > < span class = "n" > field< / span > < span class = "o" > =< / span > < span class = "n" > obj< / span >
< span class = "n" > memodict< / span > < span class = "p" > [< / span > < span class = "nb" > id< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )]< / span > < span class = "o" > =< / span > < span class = "n" > obj< / span >
< span class = "k" > return< / span > < span class = "n" > obj< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __copy__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "c1" > # We need to avoid hitting __reduce__, so define this< / span >
< span class = "c1" > # slightly weird copy construct.< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "n" > Empty< / span > < span class = "p" > ()< / span >
< span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span >
< span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "o" > .< / span > < span class = "n" > copy< / span > < span class = "p" > ()< / span >
< span class = "k" > return< / span > < span class = "n" > obj< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __reduce__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Pickling should return the model._meta.fields instance of the field,< / span >
< span class = "sd" > not a new copy of that field. So, use the app registry to load the< / span >
< span class = "sd" > model and then the field back.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s2" > " model" < / span > < span class = "p" > ):< / span >
< span class = "c1" > # Fields are sometimes used without attaching them to models (for< / span >
< span class = "c1" > # example in aggregation). In this case give back a plain field< / span >
< span class = "c1" > # instance. The code below will create a new empty instance of< / span >
< span class = "c1" > # class self.__class__, then update its dict with self.__dict__< / span >
< span class = "c1" > # values - so, this is very close to normal pickle.< / span >
< span class = "n" > state< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "o" > .< / span > < span class = "n" > copy< / span > < span class = "p" > ()< / span >
< span class = "c1" > # The _get_default cached_property can' t be pickled due to lambda< / span >
< span class = "c1" > # usage.< / span >
< span class = "n" > state< / span > < span class = "o" > .< / span > < span class = "n" > pop< / span > < span class = "p" > (< / span > < span class = "s2" > " _get_default" < / span > < span class = "p" > ,< / span > < span class = "kc" > None< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > _empty< / span > < span class = "p" > ,< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "p" > ,),< / span > < span class = "n" > state< / span >
< span class = "k" > return< / span > < span class = "n" > _load_field< / span > < span class = "p" > ,< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > app_label< / span > < span class = "p" > ,< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > object_name< / span > < span class = "p" > ,< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_pk_value_on_save< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > instance< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Hook to generate new PK values on save. This method is called when< / span >
< span class = "sd" > saving instances with no primary key value set. If this method returns< / span >
< span class = "sd" > something else than None, then the returned value is used when saving< / span >
< span class = "sd" > the new instance.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_default< / span > < span class = "p" > ()< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Convert the input value into the expected Python data type, raising< / span >
< span class = "sd" > django.core.exceptions.ValidationError if the data can' t be converted.< / span >
< span class = "sd" > Return the converted value. Subclasses should override this.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "nd" > @cached_property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > error_messages< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > messages< / span > < span class = "o" > =< / span > < span class = "p" > {}< / span >
< span class = "k" > for< / span > < span class = "n" > c< / span > < span class = "ow" > in< / span > < span class = "nb" > reversed< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __mro__< / span > < span class = "p" > ):< / span >
< span class = "n" > messages< / span > < span class = "o" > .< / span > < span class = "n" > update< / span > < span class = "p" > (< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "n" > c< / span > < span class = "p" > ,< / span > < span class = "s2" > " default_error_messages" < / span > < span class = "p" > ,< / span > < span class = "p" > {}))< / span >
< span class = "n" > messages< / span > < span class = "o" > .< / span > < span class = "n" > update< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _error_messages< / span > < span class = "ow" > or< / span > < span class = "p" > {})< / span >
< span class = "k" > return< / span > < span class = "n" > messages< / span >
< span class = "nd" > @cached_property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > validators< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Some validators can' t be created at field initialization time.< / span >
< span class = "sd" > This method provides a way to delay their creation until required.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > return< / span > < span class = "p" > [< / span > < span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default_validators< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _validators< / span > < span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > run_validators< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > empty_values< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span >
< span class = "n" > errors< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "k" > for< / span > < span class = "n" > v< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > validators< / span > < span class = "p" > :< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > v< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "k" > as< / span > < span class = "n" > e< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "n" > e< / span > < span class = "p" > ,< / span > < span class = "s2" > " code" < / span > < span class = "p" > )< / span > < span class = "ow" > and< / span > < span class = "n" > e< / span > < span class = "o" > .< / span > < span class = "n" > code< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > :< / span >
< span class = "n" > e< / span > < span class = "o" > .< / span > < span class = "n" > message< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "n" > e< / span > < span class = "o" > .< / span > < span class = "n" > code< / span > < span class = "p" > ]< / span >
< span class = "n" > errors< / span > < span class = "o" > .< / span > < span class = "n" > extend< / span > < span class = "p" > (< / span > < span class = "n" > e< / span > < span class = "o" > .< / span > < span class = "n" > error_list< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > errors< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span > < span class = "n" > errors< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > validate< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > model_instance< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Validate value and raise ValidationError if necessary. Subclasses< / span >
< span class = "sd" > should override this to provide validation logic.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > editable< / span > < span class = "p" > :< / span >
< span class = "c1" > # Skip validation for non-editable fields.< / span >
< span class = "k" > return< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "n" > value< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > empty_values< / span > < span class = "p" > :< / span >
< span class = "k" > for< / span > < span class = "n" > option_key< / span > < span class = "p" > ,< / span > < span class = "n" > option_value< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > option_value< / span > < span class = "p" > ,< / span > < span class = "p" > (< / span > < span class = "nb" > list< / span > < span class = "p" > ,< / span > < span class = "nb" > tuple< / span > < span class = "p" > )):< / span >
< span class = "c1" > # This is an optgroup, so look inside the group for< / span >
< span class = "c1" > # options.< / span >
< span class = "k" > for< / span > < span class = "n" > optgroup_key< / span > < span class = "p" > ,< / span > < span class = "n" > optgroup_value< / span > < span class = "ow" > in< / span > < span class = "n" > option_value< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "o" > ==< / span > < span class = "n" > optgroup_key< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span >
< span class = "k" > elif< / span > < span class = "n" > value< / span > < span class = "o" > ==< / span > < span class = "n" > option_key< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid_choice" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid_choice" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > null< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " null" < / span > < span class = "p" > ],< / span > < span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " null" < / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > blank< / span > < span class = "ow" > and< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > empty_values< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " blank" < / span > < span class = "p" > ],< / span > < span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " blank" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > clean< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > model_instance< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Convert the value' s type and run validation. Validation errors< / span >
< span class = "sd" > from to_python() and validate() are propagated. Return the correct< / span >
< span class = "sd" > value if no error is raised.< / span >
< span class = "sd" > " " " < / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > validate< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > model_instance< / span > < span class = "p" > )< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > run_validators< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > db_type_parameters< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > DictWrapper< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > quote_name< / span > < span class = "p" > ,< / span > < span class = "s2" > " qn_" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > db_check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Return the database column check constraint for this field, for the< / span >
< span class = "sd" > provided connection. Works the same way as db_type() for the case that< / span >
< span class = "sd" > get_internal_type() does not map to a preexisting model field.< / span >
< span class = "sd" > " " " < / span >
< span class = "n" > data< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_type_parameters< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > (< / span >
< span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > data_type_check_constraints< / span > < span class = "p" > [< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_internal_type< / span > < span class = "p" > ()]< / span > < span class = "o" > %< / span > < span class = "n" > data< / span >
< span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "ne" > KeyError< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > db_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Return the database column data type for this field, for the provided< / span >
< span class = "sd" > connection.< / span >
< span class = "sd" > " " " < / span >
< span class = "c1" > # The default implementation of this method looks at the< / span >
< span class = "c1" > # backend-specific data_types dictionary, looking up the field by its< / span >
< span class = "c1" > # " internal type" .< / span >
< span class = "c1" > #< / span >
< span class = "c1" > # A Field class can implement the get_internal_type() method to specify< / span >
< span class = "c1" > # which *preexisting* Django Field class it' s most similar to -- i.e.,< / span >
< span class = "c1" > # a custom field might be represented by a TEXT column type, which is< / span >
< span class = "c1" > # the same as the TextField Django field type, which means the custom< / span >
< span class = "c1" > # field' s get_internal_type() returns ' TextField' .< / span >
< span class = "c1" > #< / span >
< span class = "c1" > # But the limitation of the get_internal_type() / data_types approach< / span >
< span class = "c1" > # is that it cannot handle database column types that aren' t already< / span >
< span class = "c1" > # mapped to one of the built-in Django field types. In this case, you< / span >
< span class = "c1" > # can implement db_type() instead of get_internal_type() to specify< / span >
< span class = "c1" > # exactly which wacky database column type you want to use.< / span >
< span class = "n" > data< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_type_parameters< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > column_type< / span > < span class = "o" > =< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > data_types< / span > < span class = "p" > [< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_internal_type< / span > < span class = "p" > ()]< / span >
< span class = "k" > except< / span > < span class = "ne" > KeyError< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "c1" > # column_type is either a single-parameter function or a string.< / span >
< span class = "k" > if< / span > < span class = "nb" > callable< / span > < span class = "p" > (< / span > < span class = "n" > column_type< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > column_type< / span > < span class = "p" > (< / span > < span class = "n" > data< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > column_type< / span > < span class = "o" > %< / span > < span class = "n" > data< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > rel_db_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Return the data type that a related field pointing to this field should< / span >
< span class = "sd" > use. For example, this method is called by ForeignKey and OneToOneField< / span >
< span class = "sd" > to determine its data type.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_type< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > cast_db_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return the data type to use in the Cast() function." " " < / span >
< span class = "n" > db_type< / span > < span class = "o" > =< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > cast_data_types< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_internal_type< / span > < span class = "p" > ())< / span >
< span class = "k" > if< / span > < span class = "n" > db_type< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > db_type< / span > < span class = "o" > %< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_type_parameters< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_type< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > db_parameters< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Extension of db_type(), providing a range of different return values< / span >
< span class = "sd" > (type, checks). This will look at db_type(), allowing custom model< / span >
< span class = "sd" > fields to override it.< / span >
< span class = "sd" > " " " < / span >
< span class = "n" > type_string< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_type< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "n" > check_string< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_check< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "p" > {< / span >
< span class = "s2" > " type" < / span > < span class = "p" > :< / span > < span class = "n" > type_string< / span > < span class = "p" > ,< / span >
< span class = "s2" > " check" < / span > < span class = "p" > :< / span > < span class = "n" > check_string< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > db_type_suffix< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > data_types_suffix< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_internal_type< / span > < span class = "p" > ())< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_converters< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s2" > " from_db_value" < / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > from_db_value< / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "nd" > @cached_property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > unique< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _unique< / span > < span class = "ow" > or< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > primary_key< / span >
< span class = "nd" > @property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > db_tablespace< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _db_tablespace< / span > < span class = "ow" > or< / span > < span class = "n" > settings< / span > < span class = "o" > .< / span > < span class = "n" > DEFAULT_INDEX_TABLESPACE< / span >
< span class = "nd" > @property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > db_returning< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Private API intended only to be used by Django itself." " " < / span >
2026-02-15 17:42:43 +00:00
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_db_default< / span > < span class = "p" > ()< / span >
2025-08-15 18:14:21 +00:00
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > set_attributes_from_name< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "ow" > or< / span > < span class = "n" > name< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > attname< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > column< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_attname_column< / span > < span class = "p" > ()< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > concrete< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > column< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > verbose_name< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > verbose_name< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "o" > .< / span > < span class = "n" > replace< / span > < span class = "p" > (< / span > < span class = "s2" > " _" < / span > < span class = "p" > ,< / span > < span class = "s2" > " " < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > contribute_to_class< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > private_only< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Register the field with the model class it belongs to.< / span >
< span class = "sd" > If private_only is True, create a separate instance of this field< / span >
< span class = "sd" > for every subclass of cls, even if cls is not an abstract model.< / span >
< span class = "sd" > " " " < / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > set_attributes_from_name< / span > < span class = "p" > (< / span > < span class = "n" > name< / span > < span class = "p" > )< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > =< / span > < span class = "bp" > cls< / span >
< span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > add_field< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > private< / span > < span class = "o" > =< / span > < span class = "n" > private_only< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > column< / span > < span class = "p" > :< / span >
< span class = "nb" > setattr< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > attname< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > descriptor_class< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ))< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "c1" > # Don' t override a get_FOO_display() method defined explicitly on< / span >
< span class = "c1" > # this class, but don' t check methods derived from inheritance, to< / span >
< span class = "c1" > # allow overriding inherited choices. For more complex inheritance< / span >
< span class = "c1" > # structures users should override contribute_to_class().< / span >
< span class = "k" > if< / span > < span class = "s2" > " get_< / span > < span class = "si" > %s< / span > < span class = "s2" > _display" < / span > < span class = "o" > %< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "vm" > __dict__< / span > < span class = "p" > :< / span >
< span class = "nb" > setattr< / span > < span class = "p" > (< / span >
< span class = "bp" > cls< / span > < span class = "p" > ,< / span >
< span class = "s2" > " get_< / span > < span class = "si" > %s< / span > < span class = "s2" > _display" < / span > < span class = "o" > %< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span >
< span class = "n" > partialmethod< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _get_FIELD_display< / span > < span class = "p" > ,< / span > < span class = "n" > field< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ),< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_filter_kwargs_for_object< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > obj< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Return a dict that when passed as kwargs to self.model.filter(), would< / span >
< span class = "sd" > yield all instances having the same value for this field as obj has.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > return< / span > < span class = "p" > {< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > :< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > attname< / span > < span class = "p" > )}< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_attname< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_attname_column< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > attname< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_attname< / span > < span class = "p" > ()< / span >
< span class = "n" > column< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_column< / span > < span class = "ow" > or< / span > < span class = "n" > attname< / span >
< span class = "k" > return< / span > < span class = "n" > attname< / span > < span class = "p" > ,< / span > < span class = "n" > column< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > pre_save< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "n" > add< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return field' s value just before saving." " " < / span >
< span class = "k" > return< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > attname< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Perform preliminary non-db specific value checks and conversions." " " < / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > Promise< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > value< / span > < span class = "o" > .< / span > < span class = "n" > _proxy____cast< / span > < span class = "p" > ()< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
2026-02-15 17:42:43 +00:00
< span class = "sd" > Return field' s value prepared for interacting with the database< / span >
< span class = "sd" > backend.< / span >
2025-08-15 18:14:21 +00:00
< span class = "sd" > Used by the default implementations of get_db_prep_save().< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > prepared< / span > < span class = "p" > :< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_save< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return field' s value prepared for saving into a database." " " < / span >
< span class = "k" > if< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "s2" > " as_sql" < / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "o" > =< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > has_default< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return a boolean of whether this field has a default value." " " < / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "n" > NOT_PROVIDED< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > has_db_default< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return a boolean of whether this field has a db_default value." " " < / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_default< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "n" > NOT_PROVIDED< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_default< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return the default value for this field." " " < / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _get_default< / span > < span class = "p" > ()< / span >
< span class = "nd" > @cached_property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _get_default< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_default< / span > < span class = "p" > ():< / span >
< span class = "k" > if< / span > < span class = "nb" > callable< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span >
< span class = "k" > return< / span > < span class = "k" > lambda< / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_db_default< / span > < span class = "p" > ():< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db.models.expressions< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > DatabaseDefault< / span >
< span class = "k" > return< / span > < span class = "k" > lambda< / span > < span class = "p" > :< / span > < span class = "n" > DatabaseDefault< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _db_default_expression< / span > < span class = "p" > ,< / span > < span class = "n" > output_field< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span >
< span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span >
< span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > empty_strings_allowed< / span >
< span class = "ow" > or< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > null< / span >
< span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > interprets_empty_strings_as_nulls< / span >
< span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > return_None< / span >
< span class = "k" > return< / span > < span class = "nb" > str< / span > < span class = "c1" > # return empty string< / span >
< span class = "nd" > @cached_property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _db_default_expression< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > db_default< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_default< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_db_default< / span > < span class = "p" > ()< / span > < span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "n" > db_default< / span > < span class = "p" > ,< / span > < span class = "s2" > " resolve_expression" < / span > < span class = "p" > ):< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db.models.expressions< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > Value< / span >
< span class = "n" > db_default< / span > < span class = "o" > =< / span > < span class = "n" > Value< / span > < span class = "p" > (< / span > < span class = "n" > db_default< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > db_default< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_choices< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "n" > include_blank< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span > < span class = "p" > ,< / span >
< span class = "n" > blank_choice< / span > < span class = "o" > =< / span > < span class = "n" > BLANK_CHOICE_DASH< / span > < span class = "p" > ,< / span >
< span class = "n" > limit_choices_to< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > ordering< / span > < span class = "o" > =< / span > < span class = "p" > (),< / span >
< span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Return choices with a default blank choices included, for use< / span >
< span class = "sd" > as < select> choices for this field.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > include_blank< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > BlankChoiceIterator< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "p" > ,< / span > < span class = "n" > blank_choice< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span >
< span class = "n" > rel_model< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "o" > .< / span > < span class = "n" > model< / span >
< span class = "n" > limit_choices_to< / span > < span class = "o" > =< / span > < span class = "n" > limit_choices_to< / span > < span class = "ow" > or< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_limit_choices_to< / span > < span class = "p" > ()< / span >
< span class = "n" > choice_func< / span > < span class = "o" > =< / span > < span class = "n" > operator< / span > < span class = "o" > .< / span > < span class = "n" > attrgetter< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "o" > .< / span > < span class = "n" > get_related_field< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > attname< / span >
< span class = "k" > if< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > remote_field< / span > < span class = "p" > ,< / span > < span class = "s2" > " get_related_field" < / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "s2" > " pk" < / span >
< span class = "p" > )< / span >
< span class = "n" > qs< / span > < span class = "o" > =< / span > < span class = "n" > rel_model< / span > < span class = "o" > .< / span > < span class = "n" > _default_manager< / span > < span class = "o" > .< / span > < span class = "n" > complex_filter< / span > < span class = "p" > (< / span > < span class = "n" > limit_choices_to< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > ordering< / span > < span class = "p" > :< / span >
< span class = "n" > qs< / span > < span class = "o" > =< / span > < span class = "n" > qs< / span > < span class = "o" > .< / span > < span class = "n" > order_by< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > ordering< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "n" > blank_choice< / span > < span class = "k" > if< / span > < span class = "n" > include_blank< / span > < span class = "k" > else< / span > < span class = "p" > [])< / span > < span class = "o" > +< / span > < span class = "p" > [< / span >
< span class = "p" > (< / span > < span class = "n" > choice_func< / span > < span class = "p" > (< / span > < span class = "n" > x< / span > < span class = "p" > ),< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > x< / span > < span class = "p" > ))< / span > < span class = "k" > for< / span > < span class = "n" > x< / span > < span class = "ow" > in< / span > < span class = "n" > qs< / span >
< span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > value_to_string< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > obj< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Return a string value of this field from the passed obj.< / span >
< span class = "sd" > This is used by the serialization framework.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > return< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > value_from_object< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > ))< / span >
< span class = "nd" > @property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > flatchoices< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Flattened version of choices tuple." " " < / span >
< span class = "k" > return< / span > < span class = "nb" > list< / span > < span class = "p" > (< / span > < span class = "n" > flatten_choices< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "p" > ))< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > save_form_data< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > instance< / span > < span class = "p" > ,< / span > < span class = "n" > data< / span > < span class = "p" > ):< / span >
< span class = "nb" > setattr< / span > < span class = "p" > (< / span > < span class = "n" > instance< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > data< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > form_class< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "n" > choices_form_class< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return a django.forms.Field instance for this field." " " < / span >
< span class = "n" > defaults< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " required" < / span > < span class = "p" > :< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > blank< / span > < span class = "p" > ,< / span >
< span class = "s2" > " label" < / span > < span class = "p" > :< / span > < span class = "n" > capfirst< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > verbose_name< / span > < span class = "p" > ),< / span >
< span class = "s2" > " help_text" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > help_text< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_default< / span > < span class = "p" > ():< / span >
< span class = "k" > if< / span > < span class = "nb" > callable< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span > < span class = "p" > ):< / span >
< span class = "n" > defaults< / span > < span class = "p" > [< / span > < span class = "s2" > " initial" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span >
< span class = "n" > defaults< / span > < span class = "p" > [< / span > < span class = "s2" > " show_hidden_initial" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "n" > defaults< / span > < span class = "p" > [< / span > < span class = "s2" > " initial" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_default< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "c1" > # Fields with choices get special treatment.< / span >
< span class = "n" > include_blank< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > blank< / span > < span class = "ow" > or< / span > < span class = "ow" > not< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_default< / span > < span class = "p" > ()< / span > < span class = "ow" > or< / span > < span class = "s2" > " initial" < / span > < span class = "ow" > in< / span > < span class = "n" > kwargs< / span >
< span class = "p" > )< / span >
< span class = "n" > defaults< / span > < span class = "p" > [< / span > < span class = "s2" > " choices" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_choices< / span > < span class = "p" > (< / span > < span class = "n" > include_blank< / span > < span class = "o" > =< / span > < span class = "n" > include_blank< / span > < span class = "p" > )< / span >
< span class = "n" > defaults< / span > < span class = "p" > [< / span > < span class = "s2" > " coerce" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > null< / span > < span class = "p" > :< / span >
< span class = "n" > defaults< / span > < span class = "p" > [< / span > < span class = "s2" > " empty_value" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "k" > if< / span > < span class = "n" > choices_form_class< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > form_class< / span > < span class = "o" > =< / span > < span class = "n" > choices_form_class< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "n" > form_class< / span > < span class = "o" > =< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > TypedChoiceField< / span >
< span class = "c1" > # Many of the subclass-specific formfield arguments (min_value,< / span >
< span class = "c1" > # max_value) don' t apply for choice fields, so be sure to only pass< / span >
< span class = "c1" > # the values that TypedChoiceField will understand.< / span >
< span class = "k" > for< / span > < span class = "n" > k< / span > < span class = "ow" > in< / span > < span class = "nb" > list< / span > < span class = "p" > (< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > k< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span >
< span class = "s2" > " coerce" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " empty_value" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " choices" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " required" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " widget" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " label" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " initial" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " help_text" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " error_messages" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " show_hidden_initial" < / span > < span class = "p" > ,< / span >
< span class = "s2" > " disabled" < / span > < span class = "p" > ,< / span >
< span class = "p" > ):< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "n" > k< / span > < span class = "p" > ]< / span >
< span class = "n" > defaults< / span > < span class = "o" > .< / span > < span class = "n" > update< / span > < span class = "p" > (< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > form_class< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > form_class< / span > < span class = "o" > =< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > CharField< / span >
< span class = "k" > return< / span > < span class = "n" > form_class< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > defaults< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > value_from_object< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > obj< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return the value of this field in the given model instance." " " < / span >
< span class = "k" > return< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > attname< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > slice_expression< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > expression< / span > < span class = "p" > ,< / span > < span class = "n" > start< / span > < span class = "p" > ,< / span > < span class = "n" > length< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Return a slice of this field." " " < / span >
< span class = "k" > raise< / span > < span class = "n" > NotSupportedError< / span > < span class = "p" > (< / span > < span class = "s2" > " This field does not support slicing." < / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > BooleanField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value must be either True or False." < / span > < span class = "p" > ),< / span >
< span class = "s2" > " invalid_nullable" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value must be either True, False, or None." < / span > < span class = "p" > ),< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Boolean (Either True or False)" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " BooleanField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > null< / span > < span class = "ow" > and< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > empty_values< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "kc" > True< / span > < span class = "p" > ,< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "c1" > # 1/0 are equal to True/False. bool() converts former to latter.< / span >
< span class = "k" > return< / span > < span class = "nb" > bool< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "s2" > " t" < / span > < span class = "p" > ,< / span > < span class = "s2" > " True" < / span > < span class = "p" > ,< / span > < span class = "s2" > " 1" < / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "kc" > True< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "s2" > " f" < / span > < span class = "p" > ,< / span > < span class = "s2" > " False" < / span > < span class = "p" > ,< / span > < span class = "s2" > " 0" < / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "kc" > False< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid_nullable" < / span > < span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > null< / span > < span class = "k" > else< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > include_blank< / span > < span class = "o" > =< / span > < span class = "ow" > not< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_default< / span > < span class = "p" > ()< / span > < span class = "ow" > or< / span > < span class = "s2" > " initial" < / span > < span class = "ow" > in< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "n" > defaults< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " choices" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_choices< / span > < span class = "p" > (< / span > < span class = "n" > include_blank< / span > < span class = "o" > =< / span > < span class = "n" > include_blank< / span > < span class = "p" > )}< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "n" > form_class< / span > < span class = "o" > =< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > NullBooleanField< / span > < span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > null< / span > < span class = "k" > else< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > BooleanField< / span >
< span class = "c1" > # In HTML checkboxes, ' required' means " must be checked" which is< / span >
< span class = "c1" > # different from the choices case (" must select some value" ).< / span >
< span class = "c1" > # required=False allows unchecked checkboxes.< / span >
< span class = "n" > defaults< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > form_class< / span > < span class = "p" > ,< / span > < span class = "s2" > " required" < / span > < span class = "p" > :< / span > < span class = "kc" > False< / span > < span class = "p" > }< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "p" > {< / span > < span class = "o" > **< / span > < span class = "n" > defaults< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > })< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > CharField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > db_collation< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_collation< / span > < span class = "o" > =< / span > < span class = "n" > db_collation< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > MaxLengthValidator< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "p" > ))< / span >
< span class = "nd" > @property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > description< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " String (up to < / span > < span class = "si" > %(max_length)s< / span > < span class = "s2" > )" < / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " String (unlimited)" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "n" > databases< / span > < span class = "o" > =< / span > < span class = "n" > kwargs< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "s2" > " databases" < / span > < span class = "p" > )< / span > < span class = "ow" > or< / span > < span class = "p" > []< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "o" > *< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > check< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_db_collation< / span > < span class = "p" > (< / span > < span class = "n" > databases< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_max_length_attribute< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_max_length_attribute< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "p" > (< / span >
< span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > supports_unlimited_charfield< / span >
< span class = "ow" > or< / span > < span class = "s2" > " supports_unlimited_charfield" < / span >
< span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > required_db_features< / span >
< span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " CharFields must define a ' max_length' attribute." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E120" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > elif< / span > < span class = "p" > (< / span >
< span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "p" > ,< / span > < span class = "nb" > int< / span > < span class = "p" > )< / span >
< span class = "ow" > or< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "p" > ,< / span > < span class = "nb" > bool< / span > < span class = "p" > )< / span >
< span class = "ow" > or< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "o" > < =< / span > < span class = "mi" > 0< / span >
< span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " ' max_length' must be a positive integer." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E121" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_db_collation< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > databases< / span > < span class = "p" > ):< / span >
< span class = "n" > errors< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "k" > for< / span > < span class = "n" > db< / span > < span class = "ow" > in< / span > < span class = "n" > databases< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > router< / span > < span class = "o" > .< / span > < span class = "n" > allow_migrate_model< / span > < span class = "p" > (< / span > < span class = "n" > db< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "p" > ):< / span >
< span class = "k" > continue< / span >
< span class = "n" > connection< / span > < span class = "o" > =< / span > < span class = "n" > connections< / span > < span class = "p" > [< / span > < span class = "n" > db< / span > < span class = "p" > ]< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_collation< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span >
< span class = "ow" > or< / span > < span class = "s2" > " supports_collation_on_charfield" < / span >
< span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > required_db_features< / span >
< span class = "ow" > or< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > supports_collation_on_charfield< / span >
< span class = "p" > ):< / span >
< span class = "n" > errors< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " < / span > < span class = "si" > %s< / span > < span class = "s2" > does not support a database collation on " < / span >
< span class = "s2" > " CharFields." < / span > < span class = "o" > %< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > display_name< / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E190" < / span > < span class = "p" > ,< / span >
< span class = "p" > ),< / span >
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > errors< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > cast_db_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > cast_char_field_without_max_length< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > cast_db_type< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > db_parameters< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "n" > db_params< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > db_parameters< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "n" > db_params< / span > < span class = "p" > [< / span > < span class = "s2" > " collation" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_collation< / span >
< span class = "k" > return< / span > < span class = "n" > db_params< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " CharField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "nb" > str< / span > < span class = "p" > )< / span > < span class = "ow" > or< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > return< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Passing max_length to forms.CharField means that the value' s length< / span >
< span class = "c1" > # will be validated twice. This is considered acceptable since we want< / span >
< span class = "c1" > # the value in the form field (to pass into widget for example).< / span >
< span class = "n" > defaults< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "p" > }< / span >
< span class = "c1" > # TODO: Handle multiple backends with different feature flags.< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > null< / span > < span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > interprets_empty_strings_as_nulls< / span > < span class = "p" > :< / span >
< span class = "n" > defaults< / span > < span class = "p" > [< / span > < span class = "s2" > " empty_value" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "n" > defaults< / span > < span class = "o" > .< / span > < span class = "n" > update< / span > < span class = "p" > (< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > defaults< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_collation< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " db_collation" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_collation< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > slice_expression< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > expression< / span > < span class = "p" > ,< / span > < span class = "n" > start< / span > < span class = "p" > ,< / span > < span class = "n" > length< / span > < span class = "p" > ):< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db.models.functions< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > Substr< / span >
< span class = "k" > return< / span > < span class = "n" > Substr< / span > < span class = "p" > (< / span > < span class = "n" > expression< / span > < span class = "p" > ,< / span > < span class = "n" > start< / span > < span class = "p" > ,< / span > < span class = "n" > length< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > CommaSeparatedIntegerField< / span > < span class = "p" > (< / span > < span class = "n" > CharField< / span > < span class = "p" > ):< / span >
< span class = "n" > default_validators< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > validate_comma_separated_integer_list< / span > < span class = "p" > ]< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Comma-separated integers" < / span > < span class = "p" > )< / span >
< span class = "n" > system_check_removed_details< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " msg" < / span > < span class = "p" > :< / span > < span class = "p" > (< / span >
< span class = "s2" > " CommaSeparatedIntegerField is removed except for support in " < / span >
< span class = "s2" > " historical migrations." < / span >
< span class = "p" > ),< / span >
< span class = "s2" > " hint" < / span > < span class = "p" > :< / span > < span class = "p" > (< / span >
< span class = "s2" > " Use CharField(validators=[validate_comma_separated_integer_list]) " < / span >
< span class = "s2" > " instead." < / span >
< span class = "p" > ),< / span >
< span class = "s2" > " id" < / span > < span class = "p" > :< / span > < span class = "s2" > " fields.E901" < / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _to_naive< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > is_aware< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
2026-02-15 17:42:43 +00:00
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > make_naive< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > UTC< / span > < span class = "p" > )< / span >
2025-08-15 18:14:21 +00:00
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _get_naive_now< / span > < span class = "p" > ():< / span >
< span class = "k" > return< / span > < span class = "n" > _to_naive< / span > < span class = "p" > (< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > now< / span > < span class = "p" > ())< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > DateTimeCheckMixin< / span > < span class = "p" > :< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "o" > *< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > check< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_mutually_exclusive_options< / span > < span class = "p" > (),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_fix_default_value< / span > < span class = "p" > (),< / span >
< span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_mutually_exclusive_options< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "c1" > # auto_now, auto_now_add, and default are mutually exclusive< / span >
< span class = "c1" > # options. The use of more than one of these options together< / span >
< span class = "c1" > # will trigger an Error< / span >
< span class = "n" > mutually_exclusive_options< / span > < span class = "o" > =< / span > < span class = "p" > [< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span > < span class = "p" > ,< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span > < span class = "p" > ,< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_default< / span > < span class = "p" > (),< / span >
< span class = "p" > ]< / span >
< span class = "n" > enabled_options< / span > < span class = "o" > =< / span > < span class = "p" > [< / span >
< span class = "n" > option< / span > < span class = "ow" > not< / span > < span class = "ow" > in< / span > < span class = "p" > (< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "kc" > False< / span > < span class = "p" > )< / span > < span class = "k" > for< / span > < span class = "n" > option< / span > < span class = "ow" > in< / span > < span class = "n" > mutually_exclusive_options< / span >
< span class = "p" > ]< / span > < span class = "o" > .< / span > < span class = "n" > count< / span > < span class = "p" > (< / span > < span class = "kc" > True< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > enabled_options< / span > < span class = "o" > > < / span > < span class = "mi" > 1< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " The options auto_now, auto_now_add, and default " < / span >
< span class = "s2" > " are mutually exclusive. Only one of these options " < / span >
< span class = "s2" > " may be present." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E160" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_fix_default_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "c1" > # Concrete subclasses use this in their implementations of< / span >
< span class = "c1" > # _check_fix_default_value().< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_if_value_fixed< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > now< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Check if the given value appears to have been provided as a " fixed" < / span >
< span class = "sd" > time value, and include a warning in the returned list if it does. The< / span >
< span class = "sd" > value argument must be a date object or aware/naive datetime object. If< / span >
< span class = "sd" > now is provided, it must be a naive datetime object.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "n" > now< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > now< / span > < span class = "o" > =< / span > < span class = "n" > _get_naive_now< / span > < span class = "p" > ()< / span >
< span class = "n" > offset< / span > < span class = "o" > =< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > timedelta< / span > < span class = "p" > (< / span > < span class = "n" > seconds< / span > < span class = "o" > =< / span > < span class = "mi" > 10< / span > < span class = "p" > )< / span >
< span class = "n" > lower< / span > < span class = "o" > =< / span > < span class = "n" > now< / span > < span class = "o" > -< / span > < span class = "n" > offset< / span >
< span class = "n" > upper< / span > < span class = "o" > =< / span > < span class = "n" > now< / span > < span class = "o" > +< / span > < span class = "n" > offset< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > _to_naive< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > assert< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "p" > )< / span >
< span class = "n" > lower< / span > < span class = "o" > =< / span > < span class = "n" > lower< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "p" > ()< / span >
< span class = "n" > upper< / span > < span class = "o" > =< / span > < span class = "n" > upper< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "n" > lower< / span > < span class = "o" > < =< / span > < span class = "n" > value< / span > < span class = "o" > < =< / span > < span class = "n" > upper< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Warning< / span > < span class = "p" > (< / span >
< span class = "s2" > " Fixed default value provided." < / span > < span class = "p" > ,< / span >
< span class = "n" > hint< / span > < span class = "o" > =< / span > < span class = "p" > (< / span >
< span class = "s2" > " It seems you set a fixed date / time / datetime " < / span >
< span class = "s2" > " value as default for this field. This may not be " < / span >
< span class = "s2" > " what you want. If you want to have the current date " < / span >
< span class = "s2" > " as default, use `django.utils.timezone.now`" < / span >
< span class = "p" > ),< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.W161" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > DateField< / span > < span class = "p" > (< / span > < span class = "n" > DateTimeCheckMixin< / span > < span class = "p" > ,< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span >
< span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value has an invalid date format. It must be " < / span >
< span class = "s2" > " in YYYY-MM-DD format." < / span >
< span class = "p" > ),< / span >
< span class = "s2" > " invalid_date" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span >
< span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value has the correct format (YYYY-MM-DD) " < / span >
< span class = "s2" > " but it is an invalid date." < / span >
< span class = "p" > ),< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Date (without time)" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > verbose_name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "n" > auto_now< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span > < span class = "n" > auto_now_add< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span >
< span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span > < span class = "o" > =< / span > < span class = "n" > auto_now< / span > < span class = "p" > ,< / span > < span class = "n" > auto_now_add< / span >
< span class = "k" > if< / span > < span class = "n" > auto_now< / span > < span class = "ow" > or< / span > < span class = "n" > auto_now_add< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " editable" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " blank" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "n" > verbose_name< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_fix_default_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Warn that using an actual date or datetime value is probably wrong;< / span >
< span class = "sd" > it' s only evaluated on server startup.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_default< / span > < span class = "p" > ():< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > _to_naive< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "p" > ()< / span >
< span class = "k" > elif< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "p" > ):< / span >
< span class = "k" > pass< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "c1" > # No explicit date / datetime value -- no checks necessary< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "c1" > # At this point, value is a date object.< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_if_value_fixed< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " auto_now" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " auto_now_add" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span > < span class = "ow" > or< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span > < span class = "p" > :< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " editable" < / span > < span class = "p" > ]< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " blank" < / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " DateField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > settings< / span > < span class = "o" > .< / span > < span class = "n" > USE_TZ< / span > < span class = "ow" > and< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > is_aware< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Convert aware datetimes to the default time zone< / span >
< span class = "c1" > # before casting them to dates (#17742).< / span >
< span class = "n" > default_timezone< / span > < span class = "o" > =< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > get_default_timezone< / span > < span class = "p" > ()< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > make_naive< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > default_timezone< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > parsed< / span > < span class = "o" > =< / span > < span class = "n" > parse_date< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > parsed< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > parsed< / span >
< span class = "k" > except< / span > < span class = "ne" > ValueError< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid_date" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid_date" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > pre_save< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "n" > add< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span > < span class = "ow" > or< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span > < span class = "ow" > and< / span > < span class = "n" > add< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "o" > .< / span > < span class = "n" > today< / span > < span class = "p" > ()< / span >
< span class = "nb" > setattr< / span > < span class = "p" > (< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > attname< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > pre_save< / span > < span class = "p" > (< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "n" > add< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > contribute_to_class< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > contribute_to_class< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > null< / span > < span class = "p" > :< / span >
< span class = "nb" > setattr< / span > < span class = "p" > (< / span >
< span class = "bp" > cls< / span > < span class = "p" > ,< / span >
< span class = "s2" > " get_next_by_< / span > < span class = "si" > %s< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span >
< span class = "n" > partialmethod< / span > < span class = "p" > (< / span >
< span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _get_next_or_previous_by_FIELD< / span > < span class = "p" > ,< / span > < span class = "n" > field< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > is_next< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "p" > ),< / span >
< span class = "p" > )< / span >
< span class = "nb" > setattr< / span > < span class = "p" > (< / span >
< span class = "bp" > cls< / span > < span class = "p" > ,< / span >
< span class = "s2" > " get_previous_by_< / span > < span class = "si" > %s< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span >
< span class = "n" > partialmethod< / span > < span class = "p" > (< / span >
< span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _get_next_or_previous_by_FIELD< / span > < span class = "p" > ,< / span > < span class = "n" > field< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > is_next< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "p" > ),< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Casts dates into the format expected by the backend< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > prepared< / span > < span class = "p" > :< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > adapt_datefield_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > value_to_string< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > obj< / span > < span class = "p" > ):< / span >
< span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > value_from_object< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "s2" > " " < / span > < span class = "k" > if< / span > < span class = "n" > val< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "k" > else< / span > < span class = "n" > val< / span > < span class = "o" > .< / span > < span class = "n" > isoformat< / span > < span class = "p" > ()< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > DateField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > DateTimeField< / span > < span class = "p" > (< / span > < span class = "n" > DateField< / span > < span class = "p" > ):< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span >
< span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value has an invalid format. It must be in " < / span >
< span class = "s2" > " YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ] format." < / span >
< span class = "p" > ),< / span >
< span class = "s2" > " invalid_date" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span >
< span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value has the correct format " < / span >
< span class = "s2" > " (YYYY-MM-DD) but it is an invalid date." < / span >
< span class = "p" > ),< / span >
< span class = "s2" > " invalid_datetime" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span >
< span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value has the correct format " < / span >
< span class = "s2" > " (YYYY-MM-DD HH:MM[:ss[.uuuuuu]][TZ]) " < / span >
< span class = "s2" > " but it is an invalid date/time." < / span >
< span class = "p" > ),< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Date (with time)" < / span > < span class = "p" > )< / span >
< span class = "c1" > # __init__ is inherited from DateField< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_fix_default_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Warn that using an actual date or datetime value is probably wrong;< / span >
< span class = "sd" > it' s only evaluated on server startup.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_default< / span > < span class = "p" > ():< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "p" > (< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "p" > )):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_if_value_fixed< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "c1" > # No explicit date / datetime value -- no checks necessary.< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " DateTimeField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "o" > .< / span > < span class = "n" > year< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "o" > .< / span > < span class = "n" > month< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "o" > .< / span > < span class = "n" > day< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > settings< / span > < span class = "o" > .< / span > < span class = "n" > USE_TZ< / span > < span class = "p" > :< / span >
< span class = "c1" > # For backwards compatibility, interpret naive datetimes in< / span >
< span class = "c1" > # local time. This won' t work during DST change, but we can' t< / span >
< span class = "c1" > # do much about it, so we let the exceptions percolate up the< / span >
< span class = "c1" > # call stack.< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "sa" > f< / span > < span class = "s2" > " < / span > < span class = "si" > {< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span > < span class = "si" > }< / span > < span class = "s2" > .< / span > < span class = "si" > {< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "si" > }< / span > < span class = "s2" > " < / span >
< span class = "k" > except< / span > < span class = "ne" > AttributeError< / span > < span class = "p" > :< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "s2" > " (unbound)" < / span >
< span class = "n" > warnings< / span > < span class = "o" > .< / span > < span class = "n" > warn< / span > < span class = "p" > (< / span >
< span class = "sa" > f< / span > < span class = "s2" > " DateTimeField < / span > < span class = "si" > {< / span > < span class = "n" > name< / span > < span class = "si" > }< / span > < span class = "s2" > received a naive datetime (< / span > < span class = "si" > {< / span > < span class = "n" > value< / span > < span class = "si" > }< / span > < span class = "s2" > ) while " < / span >
< span class = "s2" > " time zone support is active." < / span > < span class = "p" > ,< / span >
< span class = "ne" > RuntimeWarning< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "n" > default_timezone< / span > < span class = "o" > =< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > get_default_timezone< / span > < span class = "p" > ()< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > make_aware< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > default_timezone< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > parsed< / span > < span class = "o" > =< / span > < span class = "n" > parse_datetime< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > parsed< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > parsed< / span >
< span class = "k" > except< / span > < span class = "ne" > ValueError< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid_datetime" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid_datetime" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > parsed< / span > < span class = "o" > =< / span > < span class = "n" > parse_date< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > parsed< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "p" > (< / span > < span class = "n" > parsed< / span > < span class = "o" > .< / span > < span class = "n" > year< / span > < span class = "p" > ,< / span > < span class = "n" > parsed< / span > < span class = "o" > .< / span > < span class = "n" > month< / span > < span class = "p" > ,< / span > < span class = "n" > parsed< / span > < span class = "o" > .< / span > < span class = "n" > day< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "ne" > ValueError< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid_date" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid_date" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > pre_save< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "n" > add< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span > < span class = "ow" > or< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span > < span class = "ow" > and< / span > < span class = "n" > add< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > now< / span > < span class = "p" > ()< / span >
< span class = "nb" > setattr< / span > < span class = "p" > (< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > attname< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > pre_save< / span > < span class = "p" > (< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "n" > add< / span > < span class = "p" > )< / span >
< span class = "c1" > # contribute_to_class is inherited from DateField, it registers< / span >
< span class = "c1" > # get_next_by_FOO and get_prev_by_FOO< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "n" > settings< / span > < span class = "o" > .< / span > < span class = "n" > USE_TZ< / span > < span class = "ow" > and< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > is_naive< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "c1" > # For backwards compatibility, interpret naive datetimes in local< / span >
< span class = "c1" > # time. This won' t work during DST change, but we can' t do much< / span >
< span class = "c1" > # about it, so we let the exceptions percolate up the call stack.< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "s2" > " < / span > < span class = "si" > %s< / span > < span class = "s2" > .< / span > < span class = "si" > %s< / span > < span class = "s2" > " < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "ne" > AttributeError< / span > < span class = "p" > :< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "s2" > " (unbound)" < / span >
< span class = "n" > warnings< / span > < span class = "o" > .< / span > < span class = "n" > warn< / span > < span class = "p" > (< / span >
< span class = "s2" > " DateTimeField < / span > < span class = "si" > %s< / span > < span class = "s2" > received a naive datetime (< / span > < span class = "si" > %s< / span > < span class = "s2" > )" < / span >
< span class = "s2" > " while time zone support is active." < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ),< / span >
< span class = "ne" > RuntimeWarning< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "n" > default_timezone< / span > < span class = "o" > =< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > get_default_timezone< / span > < span class = "p" > ()< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > timezone< / span > < span class = "o" > .< / span > < span class = "n" > make_aware< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > default_timezone< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Casts datetimes into the format expected by the backend< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > prepared< / span > < span class = "p" > :< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > adapt_datetimefield_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > value_to_string< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > obj< / span > < span class = "p" > ):< / span >
< span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > value_from_object< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "s2" > " " < / span > < span class = "k" > if< / span > < span class = "n" > val< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "k" > else< / span > < span class = "n" > val< / span > < span class = "o" > .< / span > < span class = "n" > isoformat< / span > < span class = "p" > ()< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > DateTimeField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > DecimalField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value must be a decimal number." < / span > < span class = "p" > ),< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Decimal number" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "n" > verbose_name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > max_digits< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > decimal_places< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_digits< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > decimal_places< / span > < span class = "o" > =< / span > < span class = "n" > max_digits< / span > < span class = "p" > ,< / span > < span class = "n" > decimal_places< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "n" > verbose_name< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "n" > errors< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > check< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "n" > digits_errors< / span > < span class = "o" > =< / span > < span class = "p" > [< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_decimal_places< / span > < span class = "p" > (),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_max_digits< / span > < span class = "p" > (),< / span >
< span class = "p" > ]< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > digits_errors< / span > < span class = "p" > :< / span >
< span class = "n" > errors< / span > < span class = "o" > .< / span > < span class = "n" > extend< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_decimal_places_and_max_digits< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ))< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "n" > errors< / span > < span class = "o" > .< / span > < span class = "n" > extend< / span > < span class = "p" > (< / span > < span class = "n" > digits_errors< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > errors< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_decimal_places< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > decimal_places< / span > < span class = "o" > =< / span > < span class = "nb" > int< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > decimal_places< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > decimal_places< / span > < span class = "o" > < < / span > < span class = "mi" > 0< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > ValueError< / span > < span class = "p" > ()< / span >
< span class = "k" > except< / span > < span class = "ne" > TypeError< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " DecimalFields must define a ' decimal_places' attribute." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E130" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > except< / span > < span class = "ne" > ValueError< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " ' decimal_places' must be a non-negative integer." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E131" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_max_digits< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > max_digits< / span > < span class = "o" > =< / span > < span class = "nb" > int< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_digits< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > max_digits< / span > < span class = "o" > < =< / span > < span class = "mi" > 0< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > ValueError< / span > < span class = "p" > ()< / span >
< span class = "k" > except< / span > < span class = "ne" > TypeError< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " DecimalFields must define a ' max_digits' attribute." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E132" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > except< / span > < span class = "ne" > ValueError< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " ' max_digits' must be a positive integer." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E133" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_decimal_places_and_max_digits< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "nb" > int< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > decimal_places< / span > < span class = "p" > )< / span > < span class = "o" > > < / span > < span class = "nb" > int< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_digits< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " ' max_digits' must be greater or equal to ' decimal_places' ." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E134" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "nd" > @cached_property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > validators< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
2026-02-15 17:42:43 +00:00
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "o" > *< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > validators< / span > < span class = "p" > ,< / span >
< span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > DecimalValidator< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_digits< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > decimal_places< / span > < span class = "p" > ),< / span >
2025-08-15 18:14:21 +00:00
< span class = "p" > ]< / span >
< span class = "nd" > @cached_property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > context< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > decimal< / span > < span class = "o" > .< / span > < span class = "n" > Context< / span > < span class = "p" > (< / span > < span class = "n" > prec< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_digits< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_digits< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " max_digits" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_digits< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > decimal_places< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " decimal_places" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > decimal_places< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " DecimalField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "nb" > float< / span > < span class = "p" > ):< / span >
< span class = "n" > decimal_value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > context< / span > < span class = "o" > .< / span > < span class = "n" > create_decimal_from_float< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "n" > decimal_value< / span > < span class = "o" > =< / span > < span class = "n" > decimal< / span > < span class = "o" > .< / span > < span class = "n" > Decimal< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "n" > decimal< / span > < span class = "o" > .< / span > < span class = "n" > InvalidOperation< / span > < span class = "p" > ,< / span > < span class = "ne" > TypeError< / span > < span class = "p" > ,< / span > < span class = "ne" > ValueError< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > decimal_value< / span > < span class = "o" > .< / span > < span class = "n" > is_finite< / span > < span class = "p" > ():< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > decimal_value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > adapt_decimalfield_value< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ),< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_digits< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > decimal_places< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " max_digits" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_digits< / span > < span class = "p" > ,< / span >
< span class = "s2" > " decimal_places" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > decimal_places< / span > < span class = "p" > ,< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > DecimalField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > DurationField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Store timedelta objects.< / span >
< span class = "sd" > Use interval on PostgreSQL, INTERVAL DAY TO SECOND on Oracle, and bigint< / span >
< span class = "sd" > of microseconds on other databases.< / span >
< span class = "sd" > " " " < / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span >
< span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value has an invalid format. It must be in " < / span >
< span class = "s2" > " [DD] [[HH:]MM:]ss[.uuuuuu] format." < / span >
< span class = "p" > )< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Duration" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " DurationField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > timedelta< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > parsed< / span > < span class = "o" > =< / span > < span class = "n" > parse_duration< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "ne" > ValueError< / span > < span class = "p" > :< / span >
< span class = "k" > pass< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "n" > parsed< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > parsed< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > has_native_duration_field< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > return< / span > < span class = "n" > duration_microseconds< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_converters< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "n" > converters< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > has_native_duration_field< / span > < span class = "p" > :< / span >
< span class = "n" > converters< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > convert_durationfield_value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > converters< / span > < span class = "o" > +< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_db_converters< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > value_to_string< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > obj< / span > < span class = "p" > ):< / span >
< span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > value_from_object< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "s2" > " " < / span > < span class = "k" > if< / span > < span class = "n" > val< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "k" > else< / span > < span class = "n" > duration_string< / span > < span class = "p" > (< / span > < span class = "n" > val< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > DurationField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > EmailField< / span > < span class = "p" > (< / span > < span class = "n" > CharField< / span > < span class = "p" > ):< / span >
< span class = "n" > default_validators< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > validate_email< / span > < span class = "p" > ]< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Email address" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "c1" > # max_length=254 to be compliant with RFCs 3696 and 5321< / span >
< span class = "n" > kwargs< / span > < span class = "o" > .< / span > < span class = "n" > setdefault< / span > < span class = "p" > (< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ,< / span > < span class = "mi" > 254< / span > < span class = "p" > )< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
2026-02-15 17:42:43 +00:00
< span class = "c1" > # We do not exclude max_length if it matches default as we want to< / span >
< span class = "c1" > # change the default in future.< / span >
2025-08-15 18:14:21 +00:00
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "c1" > # As with CharField, this will cause email validation to be performed< / span >
< span class = "c1" > # twice.< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > EmailField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > FilePathField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " File path" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "n" > verbose_name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > path< / span > < span class = "o" > =< / span > < span class = "s2" > " " < / span > < span class = "p" > ,< / span >
< span class = "n" > match< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > recursive< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "n" > allow_files< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span > < span class = "p" > ,< / span >
< span class = "n" > allow_folders< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > match< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > recursive< / span > < span class = "o" > =< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > match< / span > < span class = "p" > ,< / span > < span class = "n" > recursive< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_files< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_folders< / span > < span class = "o" > =< / span > < span class = "n" > allow_files< / span > < span class = "p" > ,< / span > < span class = "n" > allow_folders< / span >
< span class = "n" > kwargs< / span > < span class = "o" > .< / span > < span class = "n" > setdefault< / span > < span class = "p" > (< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ,< / span > < span class = "mi" > 100< / span > < span class = "p" > )< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "n" > verbose_name< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "o" > *< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > check< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_allowing_files_or_folders< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_allowing_files_or_folders< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_files< / span > < span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_folders< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " FilePathFields must have either ' allow_files' or ' allow_folders' " < / span >
< span class = "s2" > " set to True." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E140" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "o" > !=< / span > < span class = "s2" > " " < / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " path" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > path< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > match< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " match" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > match< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > recursive< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > False< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " recursive" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > recursive< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_files< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > True< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " allow_files" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_files< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_folders< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > False< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " allow_folders" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_folders< / span >
< span class = "k" > if< / span > < span class = "n" > kwargs< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > )< / span > < span class = "o" > ==< / span > < span class = "mi" > 100< / span > < span class = "p" > :< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > return< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " path" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "p" > ()< / span > < span class = "k" > if< / span > < span class = "nb" > callable< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "p" > )< / span > < span class = "k" > else< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span >
< span class = "s2" > " match" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > match< / span > < span class = "p" > ,< / span >
< span class = "s2" > " recursive" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > recursive< / span > < span class = "p" > ,< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > FilePathField< / span > < span class = "p" > ,< / span >
< span class = "s2" > " allow_files" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_files< / span > < span class = "p" > ,< / span >
< span class = "s2" > " allow_folders" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_folders< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " FilePathField" < / span >
< div class = "viewcode-block" id = "FloatField" >
< a class = "viewcode-back" href = "../../../../api/evennia.typeclasses.managers.html#evennia.typeclasses.managers.FloatField" > [docs]< / a >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > FloatField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value must be a float." < / span > < span class = "p" > ),< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Floating point number" < / span > < span class = "p" > )< / span >
< div class = "viewcode-block" id = "FloatField.get_prep_value" >
< a class = "viewcode-back" href = "../../../../api/evennia.typeclasses.managers.html#evennia.typeclasses.managers.FloatField.get_prep_value" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > TypeError< / span > < span class = "p" > ,< / span > < span class = "ne" > ValueError< / span > < span class = "p" > )< / span > < span class = "k" > as< / span > < span class = "n" > e< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > e< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "p" > (< / span >
< span class = "s2" > " Field ' < / span > < span class = "si" > %s< / span > < span class = "s2" > ' expected a number but got < / span > < span class = "si" > %r< / span > < span class = "s2" > ." < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ),< / span >
< span class = "p" > )< / span > < span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > e< / span > < / div >
< div class = "viewcode-block" id = "FloatField.get_internal_type" >
< a class = "viewcode-back" href = "../../../../api/evennia.typeclasses.managers.html#evennia.typeclasses.managers.FloatField.get_internal_type" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " FloatField" < / span > < / div >
< div class = "viewcode-block" id = "FloatField.to_python" >
< a class = "viewcode-back" href = "../../../../api/evennia.typeclasses.managers.html#evennia.typeclasses.managers.FloatField.to_python" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "nb" > float< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > TypeError< / span > < span class = "p" > ,< / span > < span class = "ne" > ValueError< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span > < / div >
< div class = "viewcode-block" id = "FloatField.formfield" >
< a class = "viewcode-back" href = "../../../../api/evennia.typeclasses.managers.html#evennia.typeclasses.managers.FloatField.formfield" > [docs]< / a >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > FloatField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span > < / div >
< / div >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > IntegerField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value must be an integer." < / span > < span class = "p" > ),< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Integer" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "o" > *< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > check< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_max_length_warning< / span > < span class = "p" > (),< / span >
< span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_max_length_warning< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Warning< / span > < span class = "p" > (< / span >
< span class = "s2" > " ' max_length' is ignored when used with < / span > < span class = "si" > %s< / span > < span class = "s2" > ." < / span >
< span class = "o" > %< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span > < span class = "p" > ,< / span >
< span class = "n" > hint< / span > < span class = "o" > =< / span > < span class = "s2" > " Remove ' max_length' from field" < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.W122" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "nd" > @cached_property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > validators< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "c1" > # These validators can' t be added at field initialization time since< / span >
< span class = "c1" > # they' re based on values retrieved from `connection`.< / span >
< span class = "n" > validators_< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > validators< / span >
< span class = "n" > internal_type< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_internal_type< / span > < span class = "p" > ()< / span >
< span class = "n" > min_value< / span > < span class = "p" > ,< / span > < span class = "n" > max_value< / span > < span class = "o" > =< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > integer_field_range< / span > < span class = "p" > (< / span > < span class = "n" > internal_type< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > min_value< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "nb" > any< / span > < span class = "p" > (< / span >
< span class = "p" > (< / span >
< span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > validator< / span > < span class = "p" > ,< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > MinValueValidator< / span > < span class = "p" > )< / span >
< span class = "ow" > and< / span > < span class = "p" > (< / span >
< span class = "n" > validator< / span > < span class = "o" > .< / span > < span class = "n" > limit_value< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "nb" > callable< / span > < span class = "p" > (< / span > < span class = "n" > validator< / span > < span class = "o" > .< / span > < span class = "n" > limit_value< / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "n" > validator< / span > < span class = "o" > .< / span > < span class = "n" > limit_value< / span >
< span class = "p" > )< / span >
< span class = "o" > > =< / span > < span class = "n" > min_value< / span >
< span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > validator< / span > < span class = "ow" > in< / span > < span class = "n" > validators_< / span >
< span class = "p" > ):< / span >
< span class = "n" > validators_< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > MinValueValidator< / span > < span class = "p" > (< / span > < span class = "n" > min_value< / span > < span class = "p" > ))< / span >
< span class = "k" > if< / span > < span class = "n" > max_value< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "nb" > any< / span > < span class = "p" > (< / span >
< span class = "p" > (< / span >
< span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > validator< / span > < span class = "p" > ,< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > MaxValueValidator< / span > < span class = "p" > )< / span >
< span class = "ow" > and< / span > < span class = "p" > (< / span >
< span class = "n" > validator< / span > < span class = "o" > .< / span > < span class = "n" > limit_value< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "nb" > callable< / span > < span class = "p" > (< / span > < span class = "n" > validator< / span > < span class = "o" > .< / span > < span class = "n" > limit_value< / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "n" > validator< / span > < span class = "o" > .< / span > < span class = "n" > limit_value< / span >
< span class = "p" > )< / span >
< span class = "o" > < =< / span > < span class = "n" > max_value< / span >
< span class = "p" > )< / span >
< span class = "k" > for< / span > < span class = "n" > validator< / span > < span class = "ow" > in< / span > < span class = "n" > validators_< / span >
< span class = "p" > ):< / span >
< span class = "n" > validators_< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > MaxValueValidator< / span > < span class = "p" > (< / span > < span class = "n" > max_value< / span > < span class = "p" > ))< / span >
< span class = "k" > return< / span > < span class = "n" > validators_< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "nb" > int< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > TypeError< / span > < span class = "p" > ,< / span > < span class = "ne" > ValueError< / span > < span class = "p" > )< / span > < span class = "k" > as< / span > < span class = "n" > e< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > e< / span > < span class = "o" > .< / span > < span class = "vm" > __class__< / span > < span class = "p" > (< / span >
< span class = "s2" > " Field ' < / span > < span class = "si" > %s< / span > < span class = "s2" > ' expected a number but got < / span > < span class = "si" > %r< / span > < span class = "s2" > ." < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ),< / span >
< span class = "p" > )< / span > < span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > e< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > adapt_integerfield_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_internal_type< / span > < span class = "p" > ())< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " IntegerField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "nb" > int< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > TypeError< / span > < span class = "p" > ,< / span > < span class = "ne" > ValueError< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > IntegerField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > BigIntegerField< / span > < span class = "p" > (< / span > < span class = "n" > IntegerField< / span > < span class = "p" > ):< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Big (8 byte) integer" < / span > < span class = "p" > )< / span >
< span class = "n" > MAX_BIGINT< / span > < span class = "o" > =< / span > < span class = "mi" > 9223372036854775807< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " BigIntegerField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " min_value" < / span > < span class = "p" > :< / span > < span class = "o" > -< / span > < span class = "n" > BigIntegerField< / span > < span class = "o" > .< / span > < span class = "n" > MAX_BIGINT< / span > < span class = "o" > -< / span > < span class = "mi" > 1< / span > < span class = "p" > ,< / span >
< span class = "s2" > " max_value" < / span > < span class = "p" > :< / span > < span class = "n" > BigIntegerField< / span > < span class = "o" > .< / span > < span class = "n" > MAX_BIGINT< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > SmallIntegerField< / span > < span class = "p" > (< / span > < span class = "n" > IntegerField< / span > < span class = "p" > ):< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Small integer" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " SmallIntegerField" < / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > IPAddressField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " IPv4 address" < / span > < span class = "p" > )< / span >
< span class = "n" > system_check_removed_details< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " msg" < / span > < span class = "p" > :< / span > < span class = "p" > (< / span >
< span class = "s2" > " IPAddressField has been removed except for support in " < / span >
< span class = "s2" > " historical migrations." < / span >
< span class = "p" > ),< / span >
< span class = "s2" > " hint" < / span > < span class = "p" > :< / span > < span class = "s2" > " Use GenericIPAddressField instead." < / span > < span class = "p" > ,< / span >
< span class = "s2" > " id" < / span > < span class = "p" > :< / span > < span class = "s2" > " fields.E900" < / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "mi" > 15< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > return< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " IPAddressField" < / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > GenericIPAddressField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " IP address" < / span > < span class = "p" > )< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Enter a valid < / span > < span class = "si" > %(protocol)s< / span > < span class = "s2" > address." < / span > < span class = "p" > )}< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "n" > verbose_name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "n" > protocol< / span > < span class = "o" > =< / span > < span class = "s2" > " both" < / span > < span class = "p" > ,< / span >
< span class = "n" > unpack_ipv4< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span >
< span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > unpack_ipv4< / span > < span class = "o" > =< / span > < span class = "n" > unpack_ipv4< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > protocol< / span > < span class = "o" > =< / span > < span class = "n" > protocol< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default_validators< / span > < span class = "o" > =< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > ip_address_validators< / span > < span class = "p" > (< / span >
< span class = "n" > protocol< / span > < span class = "p" > ,< / span > < span class = "n" > unpack_ipv4< / span >
< span class = "p" > )< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "n" > MAX_IPV6_ADDRESS_LENGTH< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "n" > verbose_name< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "o" > *< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > check< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_blank_and_null_values< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_blank_and_null_values< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s2" > " null" < / span > < span class = "p" > ,< / span > < span class = "kc" > False< / span > < span class = "p" > )< / span > < span class = "ow" > and< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s2" > " blank" < / span > < span class = "p" > ,< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " GenericIPAddressFields cannot have blank=True if null=False, " < / span >
< span class = "s2" > " as blank values are stored as nulls." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E150" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > unpack_ipv4< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > False< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " unpack_ipv4" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > unpack_ipv4< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > protocol< / span > < span class = "o" > !=< / span > < span class = "s2" > " both" < / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " protocol" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > protocol< / span >
< span class = "k" > if< / span > < span class = "n" > kwargs< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > )< / span > < span class = "o" > ==< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "p" > :< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " GenericIPAddressField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "nb" > str< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > value< / span > < span class = "o" > .< / span > < span class = "n" > strip< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "s2" > " :" < / span > < span class = "ow" > in< / span > < span class = "n" > value< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > clean_ipv6_address< / span > < span class = "p" > (< / span >
< span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > unpack_ipv4< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ]< / span >
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > prepared< / span > < span class = "p" > :< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > adapt_ipaddressfield_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > and< / span > < span class = "s2" > " :" < / span > < span class = "ow" > in< / span > < span class = "n" > value< / span > < span class = "p" > :< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > clean_ipv6_address< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > unpack_ipv4< / span > < span class = "p" > )< / span >
< span class = "k" > except< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > :< / span >
< span class = "k" > pass< / span >
< span class = "k" > return< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " protocol" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > protocol< / span > < span class = "p" > ,< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > GenericIPAddressField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > NullBooleanField< / span > < span class = "p" > (< / span > < span class = "n" > BooleanField< / span > < span class = "p" > ):< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value must be either None, True or False." < / span > < span class = "p" > ),< / span >
< span class = "s2" > " invalid_nullable" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value must be either None, True or False." < / span > < span class = "p" > ),< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Boolean (Either True, False or None)" < / span > < span class = "p" > )< / span >
< span class = "n" > system_check_removed_details< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " msg" < / span > < span class = "p" > :< / span > < span class = "p" > (< / span >
< span class = "s2" > " NullBooleanField is removed except for support in historical " < / span >
< span class = "s2" > " migrations." < / span >
< span class = "p" > ),< / span >
< span class = "s2" > " hint" < / span > < span class = "p" > :< / span > < span class = "s2" > " Use BooleanField(null=True, blank=True) instead." < / span > < span class = "p" > ,< / span >
< span class = "s2" > " id" < / span > < span class = "p" > :< / span > < span class = "s2" > " fields.E903" < / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " null" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " blank" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " null" < / span > < span class = "p" > ]< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " blank" < / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > PositiveIntegerRelDbTypeMixin< / span > < span class = "p" > :< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > __init_subclass__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > __init_subclass__< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > hasattr< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "s2" > " integer_field_class" < / span > < span class = "p" > ):< / span >
< span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > integer_field_class< / span > < span class = "o" > =< / span > < span class = "nb" > next< / span > < span class = "p" > (< / span >
< span class = "p" > (< / span >
< span class = "n" > parent< / span >
< span class = "k" > for< / span > < span class = "n" > parent< / span > < span class = "ow" > in< / span > < span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "vm" > __mro__< / span > < span class = "p" > [< / span > < span class = "mi" > 1< / span > < span class = "p" > :]< / span >
< span class = "k" > if< / span > < span class = "nb" > issubclass< / span > < span class = "p" > (< / span > < span class = "n" > parent< / span > < span class = "p" > ,< / span > < span class = "n" > IntegerField< / span > < span class = "p" > )< / span >
< span class = "p" > ),< / span >
< span class = "kc" > None< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > rel_db_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Return the data type that a related field pointing to this field should< / span >
< span class = "sd" > use. In most cases, a foreign key pointing to a positive integer< / span >
< span class = "sd" > primary key will have an integer column data type but some databases< / span >
< span class = "sd" > (e.g. MySQL) have an unsigned integer type. In that case< / span >
< span class = "sd" > (related_fields_match_type=True), the primary key should return its< / span >
< span class = "sd" > db_type.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > related_fields_match_type< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_type< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > integer_field_class< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > db_type< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "o" > =< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > PositiveBigIntegerField< / span > < span class = "p" > (< / span > < span class = "n" > PositiveIntegerRelDbTypeMixin< / span > < span class = "p" > ,< / span > < span class = "n" > BigIntegerField< / span > < span class = "p" > ):< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Positive big integer" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " PositiveBigIntegerField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " min_value" < / span > < span class = "p" > :< / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > PositiveIntegerField< / span > < span class = "p" > (< / span > < span class = "n" > PositiveIntegerRelDbTypeMixin< / span > < span class = "p" > ,< / span > < span class = "n" > IntegerField< / span > < span class = "p" > ):< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Positive integer" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " PositiveIntegerField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " min_value" < / span > < span class = "p" > :< / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > PositiveSmallIntegerField< / span > < span class = "p" > (< / span > < span class = "n" > PositiveIntegerRelDbTypeMixin< / span > < span class = "p" > ,< / span > < span class = "n" > SmallIntegerField< / span > < span class = "p" > ):< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Positive small integer" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " PositiveSmallIntegerField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " min_value" < / span > < span class = "p" > :< / span > < span class = "mi" > 0< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > SlugField< / span > < span class = "p" > (< / span > < span class = "n" > CharField< / span > < span class = "p" > ):< / span >
< span class = "n" > default_validators< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > validate_slug< / span > < span class = "p" > ]< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Slug (up to < / span > < span class = "si" > %(max_length)s< / span > < span class = "s2" > )" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > max_length< / span > < span class = "o" > =< / span > < span class = "mi" > 50< / span > < span class = "p" > ,< / span > < span class = "n" > db_index< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span > < span class = "p" > ,< / span > < span class = "n" > allow_unicode< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span >
< span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_unicode< / span > < span class = "o" > =< / span > < span class = "n" > allow_unicode< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_unicode< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default_validators< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > validate_unicode_slug< / span > < span class = "p" > ]< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > max_length< / span > < span class = "o" > =< / span > < span class = "n" > max_length< / span > < span class = "p" > ,< / span > < span class = "n" > db_index< / span > < span class = "o" > =< / span > < span class = "n" > db_index< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "n" > kwargs< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > )< / span > < span class = "o" > ==< / span > < span class = "mi" > 50< / span > < span class = "p" > :< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ]< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_index< / span > < span class = "ow" > is< / span > < span class = "kc" > False< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " db_index" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " db_index" < / span > < span class = "p" > ]< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_unicode< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > False< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " allow_unicode" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_unicode< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " SlugField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > SlugField< / span > < span class = "p" > ,< / span >
< span class = "s2" > " allow_unicode" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > allow_unicode< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > TextField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Text" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > db_collation< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_collation< / span > < span class = "o" > =< / span > < span class = "n" > db_collation< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "n" > databases< / span > < span class = "o" > =< / span > < span class = "n" > kwargs< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "s2" > " databases" < / span > < span class = "p" > )< / span > < span class = "ow" > or< / span > < span class = "p" > []< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "o" > *< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > check< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_db_collation< / span > < span class = "p" > (< / span > < span class = "n" > databases< / span > < span class = "p" > ),< / span >
< span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_db_collation< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > databases< / span > < span class = "p" > ):< / span >
< span class = "n" > errors< / span > < span class = "o" > =< / span > < span class = "p" > []< / span >
< span class = "k" > for< / span > < span class = "n" > db< / span > < span class = "ow" > in< / span > < span class = "n" > databases< / span > < span class = "p" > :< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > router< / span > < span class = "o" > .< / span > < span class = "n" > allow_migrate_model< / span > < span class = "p" > (< / span > < span class = "n" > db< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "p" > ):< / span >
< span class = "k" > continue< / span >
< span class = "n" > connection< / span > < span class = "o" > =< / span > < span class = "n" > connections< / span > < span class = "p" > [< / span > < span class = "n" > db< / span > < span class = "p" > ]< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_collation< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span >
< span class = "ow" > or< / span > < span class = "s2" > " supports_collation_on_textfield" < / span >
< span class = "ow" > in< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > required_db_features< / span >
< span class = "ow" > or< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > supports_collation_on_textfield< / span >
< span class = "p" > ):< / span >
< span class = "n" > errors< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " < / span > < span class = "si" > %s< / span > < span class = "s2" > does not support a database collation on " < / span >
< span class = "s2" > " TextFields." < / span > < span class = "o" > %< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > display_name< / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E190" < / span > < span class = "p" > ,< / span >
< span class = "p" > ),< / span >
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > errors< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > db_parameters< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "n" > db_params< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > db_parameters< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "n" > db_params< / span > < span class = "p" > [< / span > < span class = "s2" > " collation" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_collation< / span >
< span class = "k" > return< / span > < span class = "n" > db_params< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " TextField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "nb" > str< / span > < span class = "p" > )< / span > < span class = "ow" > or< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > return< / span > < span class = "nb" > str< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Passing max_length to forms.CharField means that the value' s length< / span >
< span class = "c1" > # will be validated twice. This is considered acceptable since we want< / span >
< span class = "c1" > # the value in the form field (to pass into widget for example).< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " max_length" < / span > < span class = "p" > :< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "p" > ({}< / span > < span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > choices< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "k" > else< / span > < span class = "p" > {< / span > < span class = "s2" > " widget" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > Textarea< / span > < span class = "p" > }),< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_collation< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " db_collation" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > db_collation< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > slice_expression< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > expression< / span > < span class = "p" > ,< / span > < span class = "n" > start< / span > < span class = "p" > ,< / span > < span class = "n" > length< / span > < span class = "p" > ):< / span >
< span class = "kn" > from< / span > < span class = "w" > < / span > < span class = "nn" > django.db.models.functions< / span > < span class = "w" > < / span > < span class = "kn" > import< / span > < span class = "n" > Substr< / span >
< span class = "k" > return< / span > < span class = "n" > Substr< / span > < span class = "p" > (< / span > < span class = "n" > expression< / span > < span class = "p" > ,< / span > < span class = "n" > start< / span > < span class = "p" > ,< / span > < span class = "n" > length< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > TimeField< / span > < span class = "p" > (< / span > < span class = "n" > DateTimeCheckMixin< / span > < span class = "p" > ,< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span >
< span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value has an invalid format. It must be in " < / span >
< span class = "s2" > " HH:MM[:ss[.uuuuuu]] format." < / span >
< span class = "p" > ),< / span >
< span class = "s2" > " invalid_time" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span >
< span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” value has the correct format " < / span >
< span class = "s2" > " (HH:MM[:ss[.uuuuuu]]) but it is an invalid time." < / span >
< span class = "p" > ),< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Time" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > verbose_name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "n" > auto_now< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span > < span class = "n" > auto_now_add< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span >
< span class = "p" > ):< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span > < span class = "o" > =< / span > < span class = "n" > auto_now< / span > < span class = "p" > ,< / span > < span class = "n" > auto_now_add< / span >
< span class = "k" > if< / span > < span class = "n" > auto_now< / span > < span class = "ow" > or< / span > < span class = "n" > auto_now_add< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " editable" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " blank" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "n" > verbose_name< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_fix_default_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Warn that using an actual date or datetime value is probably wrong;< / span >
< span class = "sd" > it' s only evaluated on server startup.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_default< / span > < span class = "p" > ():< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "p" > ):< / span >
< span class = "n" > now< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "k" > elif< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > time< / span > < span class = "p" > ):< / span >
< span class = "n" > now< / span > < span class = "o" > =< / span > < span class = "n" > _get_naive_now< / span > < span class = "p" > ()< / span >
< span class = "c1" > # This will not use the right date in the race condition where now< / span >
< span class = "c1" > # is just before the date change and value is just past 0:00.< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > combine< / span > < span class = "p" > (< / span > < span class = "n" > now< / span > < span class = "o" > .< / span > < span class = "n" > date< / span > < span class = "p" > (),< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "c1" > # No explicit time / datetime value -- no checks necessary< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "c1" > # At this point, value is a datetime object.< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_if_value_fixed< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > now< / span > < span class = "o" > =< / span > < span class = "n" > now< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > False< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " auto_now" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > False< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " auto_now_add" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span > < span class = "ow" > or< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span > < span class = "p" > :< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " blank" < / span > < span class = "p" > ]< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " editable" < / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " TimeField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > time< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Not usually a good idea to pass in a datetime here (it loses< / span >
< span class = "c1" > # information), but this can be a side-effect of interacting with a< / span >
< span class = "c1" > # database backend (e.g. Oracle), so we' ll be accommodating.< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span > < span class = "o" > .< / span > < span class = "n" > time< / span > < span class = "p" > ()< / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "n" > parsed< / span > < span class = "o" > =< / span > < span class = "n" > parse_time< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > parsed< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > parsed< / span >
< span class = "k" > except< / span > < span class = "ne" > ValueError< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid_time" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid_time" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > pre_save< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "n" > add< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now< / span > < span class = "ow" > or< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > auto_now_add< / span > < span class = "ow" > and< / span > < span class = "n" > add< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > datetime< / span > < span class = "o" > .< / span > < span class = "n" > now< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > time< / span > < span class = "p" > ()< / span >
< span class = "nb" > setattr< / span > < span class = "p" > (< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > attname< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > pre_save< / span > < span class = "p" > (< / span > < span class = "n" > model_instance< / span > < span class = "p" > ,< / span > < span class = "n" > add< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Casts times into the format expected by the backend< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > prepared< / span > < span class = "p" > :< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > adapt_timefield_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > value_to_string< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > obj< / span > < span class = "p" > ):< / span >
< span class = "n" > val< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > value_from_object< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "s2" > " " < / span > < span class = "k" > if< / span > < span class = "n" > val< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "k" > else< / span > < span class = "n" > val< / span > < span class = "o" > .< / span > < span class = "n" > isoformat< / span > < span class = "p" > ()< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > TimeField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > URLField< / span > < span class = "p" > (< / span > < span class = "n" > CharField< / span > < span class = "p" > ):< / span >
< span class = "n" > default_validators< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > URLValidator< / span > < span class = "p" > ()]< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " URL" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > verbose_name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "n" > kwargs< / span > < span class = "o" > .< / span > < span class = "n" > setdefault< / span > < span class = "p" > (< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ,< / span > < span class = "mi" > 200< / span > < span class = "p" > )< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "n" > verbose_name< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "n" > kwargs< / span > < span class = "o" > .< / span > < span class = "n" > get< / span > < span class = "p" > (< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > )< / span > < span class = "o" > ==< / span > < span class = "mi" > 200< / span > < span class = "p" > :< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "c1" > # As with CharField, this will cause URL validation to be performed< / span >
< span class = "c1" > # twice.< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > URLField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > BinaryField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Raw binary data" < / span > < span class = "p" > )< / span >
< span class = "n" > empty_values< / span > < span class = "o" > =< / span > < span class = "p" > [< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "sa" > b< / span > < span class = "s2" > " " < / span > < span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "n" > kwargs< / span > < span class = "o" > .< / span > < span class = "n" > setdefault< / span > < span class = "p" > (< / span > < span class = "s2" > " editable" < / span > < span class = "p" > ,< / span > < span class = "kc" > False< / span > < span class = "p" > )< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > append< / span > < span class = "p" > (< / span > < span class = "n" > validators< / span > < span class = "o" > .< / span > < span class = "n" > MaxLengthValidator< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > max_length< / span > < span class = "p" > ))< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span > < span class = "o" > *< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > check< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span > < span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_str_default_value< / span > < span class = "p" > ()]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_str_default_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_default< / span > < span class = "p" > ()< / span > < span class = "ow" > and< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span > < span class = "p" > ,< / span > < span class = "nb" > str< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " BinaryField' s default cannot be a string. Use bytes " < / span >
< span class = "s2" > " content instead." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E170" < / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > editable< / span > < span class = "p" > :< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " editable" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " editable" < / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " BinaryField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_placeholder< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > compiler< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > binary_placeholder_sql< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_default< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > has_default< / span > < span class = "p" > ()< / span > < span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "nb" > callable< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > default< / span >
< span class = "n" > default< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_default< / span > < span class = "p" > ()< / span >
< span class = "k" > if< / span > < span class = "n" > default< / span > < span class = "o" > ==< / span > < span class = "s2" > " " < / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "sa" > b< / span > < span class = "s2" > " " < / span >
< span class = "k" > return< / span > < span class = "n" > default< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > Database< / span > < span class = "o" > .< / span > < span class = "n" > Binary< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > value_to_string< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > obj< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " Binary data is serialized as base64" " " < / span >
< span class = "k" > return< / span > < span class = "n" > b64encode< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > value_from_object< / span > < span class = "p" > (< / span > < span class = "n" > obj< / span > < span class = "p" > ))< / span > < span class = "o" > .< / span > < span class = "n" > decode< / span > < span class = "p" > (< / span > < span class = "s2" > " ascii" < / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "c1" > # If it' s a string, it should be base64-encoded data< / span >
< span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "nb" > str< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > memoryview< / span > < span class = "p" > (< / span > < span class = "n" > b64decode< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "o" > .< / span > < span class = "n" > encode< / span > < span class = "p" > (< / span > < span class = "s2" > " ascii" < / span > < span class = "p" > )))< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > UUIDField< / span > < span class = "p" > (< / span > < span class = "n" > Field< / span > < span class = "p" > ):< / span >
< span class = "n" > default_error_messages< / span > < span class = "o" > =< / span > < span class = "p" > {< / span >
< span class = "s2" > " invalid" < / span > < span class = "p" > :< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " “< / span > < span class = "si" > %(value)s< / span > < span class = "s2" > ” is not a valid UUID." < / span > < span class = "p" > ),< / span >
< span class = "p" > }< / span >
< span class = "n" > description< / span > < span class = "o" > =< / span > < span class = "n" > _< / span > < span class = "p" > (< / span > < span class = "s2" > " Universally unique identifier" < / span > < span class = "p" > )< / span >
< span class = "n" > empty_strings_allowed< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > verbose_name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "mi" > 32< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "n" > verbose_name< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " max_length" < / span > < span class = "p" > ]< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " UUIDField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > uuid< / span > < span class = "o" > .< / span > < span class = "n" > UUID< / span > < span class = "p" > ):< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > to_python< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > features< / span > < span class = "o" > .< / span > < span class = "n" > has_native_uuid_field< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span > < span class = "o" > .< / span > < span class = "n" > hex< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > to_python< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > value< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "ow" > not< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > uuid< / span > < span class = "o" > .< / span > < span class = "n" > UUID< / span > < span class = "p" > ):< / span >
< span class = "n" > input_form< / span > < span class = "o" > =< / span > < span class = "s2" > " int" < / span > < span class = "k" > if< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "nb" > int< / span > < span class = "p" > )< / span > < span class = "k" > else< / span > < span class = "s2" > " hex" < / span >
< span class = "k" > try< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "n" > uuid< / span > < span class = "o" > .< / span > < span class = "n" > UUID< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "p" > {< / span > < span class = "n" > input_form< / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > })< / span >
< span class = "k" > except< / span > < span class = "p" > (< / span > < span class = "ne" > AttributeError< / span > < span class = "p" > ,< / span > < span class = "ne" > ValueError< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "n" > exceptions< / span > < span class = "o" > .< / span > < span class = "n" > ValidationError< / span > < span class = "p" > (< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > error_messages< / span > < span class = "p" > [< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ],< / span >
< span class = "n" > code< / span > < span class = "o" > =< / span > < span class = "s2" > " invalid" < / span > < span class = "p" > ,< / span >
< span class = "n" > params< / span > < span class = "o" > =< / span > < span class = "p" > {< / span > < span class = "s2" > " value" < / span > < span class = "p" > :< / span > < span class = "n" > value< / span > < span class = "p" > },< / span >
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > formfield< / span > < span class = "p" > (< / span >
< span class = "o" > **< / span > < span class = "p" > {< / span >
< span class = "s2" > " form_class" < / span > < span class = "p" > :< / span > < span class = "n" > forms< / span > < span class = "o" > .< / span > < span class = "n" > UUIDField< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ,< / span >
< span class = "p" > }< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > AutoFieldMixin< / span > < span class = "p" > :< / span >
< span class = "n" > db_returning< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " blank" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "o" > *< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > check< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "o" > *< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > check< / span > < span class = "p" > (< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ),< / span >
< span class = "o" > *< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _check_primary_key< / span > < span class = "p" > (),< / span >
< span class = "p" > ]< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _check_primary_key< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > primary_key< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > [< / span >
< span class = "n" > checks< / span > < span class = "o" > .< / span > < span class = "n" > Error< / span > < span class = "p" > (< / span >
< span class = "s2" > " AutoFields must set primary_key=True." < / span > < span class = "p" > ,< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span >
< span class = "nb" > id< / span > < span class = "o" > =< / span > < span class = "s2" > " fields.E100" < / span > < span class = "p" > ,< / span >
< span class = "p" > ),< / span >
< span class = "p" > ]< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "k" > return< / span > < span class = "p" > []< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > deconstruct< / span > < span class = "p" > ()< / span >
< span class = "k" > del< / span > < span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " blank" < / span > < span class = "p" > ]< / span >
< span class = "n" > kwargs< / span > < span class = "p" > [< / span > < span class = "s2" > " primary_key" < / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "kc" > True< / span >
< span class = "k" > return< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > path< / span > < span class = "p" > ,< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > validate< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > model_instance< / span > < span class = "p" > ):< / span >
< span class = "k" > pass< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_db_prep_value< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > value< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ,< / span > < span class = "n" > prepared< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "ow" > not< / span > < span class = "n" > prepared< / span > < span class = "p" > :< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_prep_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "n" > value< / span > < span class = "o" > =< / span > < span class = "n" > connection< / span > < span class = "o" > .< / span > < span class = "n" > ops< / span > < span class = "o" > .< / span > < span class = "n" > validate_autopk_value< / span > < span class = "p" > (< / span > < span class = "n" > value< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > value< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > contribute_to_class< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > auto_field< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > ValueError< / span > < span class = "p" > (< / span >
< span class = "s2" > " Model < / span > < span class = "si" > %s< / span > < span class = "s2" > can' t have more than one auto-generated field." < / span >
< span class = "o" > %< / span > < span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > label< / span >
< span class = "p" > )< / span >
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > contribute_to_class< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > auto_field< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > formfield< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "o" > **< / span > < span class = "n" > kwargs< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "kc" > None< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > AutoFieldMeta< / span > < span class = "p" > (< / span > < span class = "nb" > type< / span > < span class = "p" > ):< / span >
< span class = "w" > < / span > < span class = "sd" > " " " < / span >
< span class = "sd" > Metaclass to maintain backward inheritance compatibility for AutoField.< / span >
< span class = "sd" > It is intended that AutoFieldMixin become public API when it is possible to< / span >
< span class = "sd" > create a non-integer automatically-generated field using column defaults< / span >
< span class = "sd" > stored in the database.< / span >
< span class = "sd" > In many areas Django also relies on using isinstance() to check for an< / span >
< span class = "sd" > automatically-generated field as a subclass of AutoField. A new flag needs< / span >
< span class = "sd" > to be implemented on Field to be used instead.< / span >
< span class = "sd" > When these issues have been addressed, this metaclass could be used to< / span >
< span class = "sd" > deprecate inheritance from AutoField and use of isinstance() with AutoField< / span >
< span class = "sd" > for detecting automatically-generated fields.< / span >
< span class = "sd" > " " " < / span >
< span class = "nd" > @property< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > _subclasses< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "p" > (< / span > < span class = "n" > BigAutoField< / span > < span class = "p" > ,< / span > < span class = "n" > SmallAutoField< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __instancecheck__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > instance< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > instance< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _subclasses< / span > < span class = "p" > )< / span > < span class = "ow" > or< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __instancecheck__< / span > < span class = "p" > (< / span >
< span class = "n" > instance< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "fm" > __subclasscheck__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > subclass< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "nb" > issubclass< / span > < span class = "p" > (< / span > < span class = "n" > subclass< / span > < span class = "p" > ,< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _subclasses< / span > < span class = "p" > )< / span > < span class = "ow" > or< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __subclasscheck__< / span > < span class = "p" > (< / span >
< span class = "n" > subclass< / span >
< span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > AutoField< / span > < span class = "p" > (< / span > < span class = "n" > AutoFieldMixin< / span > < span class = "p" > ,< / span > < span class = "n" > IntegerField< / span > < span class = "p" > ,< / span > < span class = "n" > metaclass< / span > < span class = "o" > =< / span > < span class = "n" > AutoFieldMeta< / span > < span class = "p" > ):< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " AutoField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > rel_db_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > IntegerField< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > db_type< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "o" > =< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > BigAutoField< / span > < span class = "p" > (< / span > < span class = "n" > AutoFieldMixin< / span > < span class = "p" > ,< / span > < span class = "n" > BigIntegerField< / span > < span class = "p" > ):< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " BigAutoField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > rel_db_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > BigIntegerField< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > db_type< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "o" > =< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "w" > < / span > < span class = "nc" > SmallAutoField< / span > < span class = "p" > (< / span > < span class = "n" > AutoFieldMixin< / span > < span class = "p" > ,< / span > < span class = "n" > SmallIntegerField< / span > < span class = "p" > ):< / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > get_internal_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "s2" > " SmallAutoField" < / span >
< span class = "k" > def< / span > < span class = "w" > < / span > < span class = "nf" > rel_db_type< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > connection< / span > < span class = "p" > ):< / span >
< span class = "k" > return< / span > < span class = "n" > SmallIntegerField< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > db_type< / span > < span class = "p" > (< / span > < span class = "n" > connection< / span > < span class = "o" > =< / span > < span class = "n" > connection< / span > < span class = "p" > )< / span >
< / pre > < / div >
< div class = "clearer" > < / div >
< / div >
< / div >
< / div >
< div class = "sphinxsidebar" role = "navigation" aria-label = "Main" >
< div class = "sphinxsidebarwrapper" >
< p class = "logo" > < a href = "../../../../index.html" >
< img class = "logo" src = "../../../../_static/evennia_logo.png" alt = "Logo of Evennia" / >
< / a > < / p >
< search id = "searchbox" style = "display: none" role = "search" >
< h3 id = "searchlabel" > Quick search< / h3 >
< div class = "searchformwrapper" >
< form class = "search" action = "../../../../search.html" method = "get" >
< input type = "text" name = "q" aria-labelledby = "searchlabel" autocomplete = "off" autocorrect = "off" autocapitalize = "off" spellcheck = "false" / >
< input type = "submit" value = "Go" / >
< / form >
< / div >
< / search >
< script > document . getElementById ( 'searchbox' ) . style . display = "block" < / script > < h3 > Links< / h3 >
< ul >
< li > < a href = "https://www.evennia.com/docs/latest/index.html" > Documentation Top< / a > < / li >
< li > < a href = "https://www.evennia.com" > Evennia Home< / a > < / li >
< li > < a href = "https://github.com/evennia/evennia" > Github< / a > < / li >
< li > < a href = "http://games.evennia.com" > Game Index< / a > < / li >
< li >
< a href = "https://discord.gg/AJJpcRUhtF" > Discord< / a > -
< a href = "https://github.com/evennia/evennia/discussions" > Discussions< / a > -
< a href = "https://evennia.blogspot.com/" > Blog< / a >
< / li >
< / ul >
< h3 > Doc Versions< / h3 >
< ul >
< li >
< a href = "https://www.evennia.com/docs/latest/index.html" > latest (main branch)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/5.x/index.html" > v5.0.0 branch (outdated)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/4.x/index.html" > v4.0.0 branch (outdated)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/3.x/index.html" > v3.0.0 branch (outdated)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/2.x/index.html" > v2.0.0 branch (outdated)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/1.x/index.html" > v1.0.0 branch (outdated)< / a >
< / li >
< li >
< a href = "https://www.evennia.com/docs/0.x/index.html" > v0.9.5 branch (outdated)< / a >
< / li >
< / ul >
< / div >
< / div >
< div class = "clearer" > < / div >
< / div >
< div class = "related" role = "navigation" aria-label = "Related" >
< h3 > Navigation< / h3 >
< ul >
< li class = "right" style = "margin-right: 10px" >
< a href = "../../../../genindex.html" title = "General Index"
>index< / a > < / li >
< li class = "right" >
< a href = "../../../../py-modindex.html" title = "Python Module Index"
>modules< / a > |< / li >
< li class = "nav-item nav-item-0" > < a href = "../../../../index.html" > Evennia< / a > » < / li >
< li class = "nav-item nav-item-1" > < a href = "../../../index.html" > Module code< / a > » < / li >
< li class = "nav-item nav-item-this" > < a href = "" > django.db.models.fields< / a > < / li >
< / ul >
< / div >
< div class = "footer" role = "contentinfo" >
© Copyright 2024, The Evennia developer community.
Created using < a href = "https://www.sphinx-doc.org/" > Sphinx< / a > 8.2.3.
< / div >
< / body >
< / html >