2020-06-13 00:36:45 +02:00
<!DOCTYPE html>
2020-06-14 21:48:02 +02:00
2020-10-15 01:31:30 +02:00
< html >
2020-06-15 21:52:33 +02:00
< head >
< meta charset = "utf-8" / >
2020-10-15 01:31:30 +02:00
< meta name = "viewport" content = "width=device-width, initial-scale=1.0" / >
2020-06-15 21:52:33 +02:00
< title > django.db.models.manager — Evennia 1.0-dev documentation< / title >
< link rel = "stylesheet" href = "../../../../_static/nature.css" type = "text/css" / >
< link rel = "stylesheet" href = "../../../../_static/pygments.css" type = "text/css" / >
< script id = "documentation_options" data-url_root = "../../../../" src = "../../../../_static/documentation_options.js" > < / script >
< script src = "../../../../_static/jquery.js" > < / script >
< script src = "../../../../_static/underscore.js" > < / script >
< script src = "../../../../_static/doctools.js" > < / script >
< script src = "../../../../_static/language_data.js" > < / script >
2021-10-26 21:41:11 +02:00
< script async = "async" src = "https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.7/latest.js?config=TeX-AMS-MML_HTMLorMML" > < / script >
< script type = "text/x-mathjax-config" > MathJax . Hub . Config ( { "tex2jax" : { "processClass" : "tex2jax_process|mathjax_process|math|output_area" } } ) < / script >
2020-06-15 21:52:33 +02:00
< link rel = "shortcut 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 navigation" >
< 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 >
2020-07-14 00:21:00 +02:00
< li class = "nav-item nav-item-0" > < a href = "../../../../index.html" > Evennia 1.0-dev< / a > » < / li >
2020-10-15 01:31:30 +02:00
< 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.manager< / a > < / li >
2020-06-15 21:52:33 +02:00
< / ul >
2021-06-23 18:58:26 +02:00
< div class = "develop" > develop branch< / div >
2020-06-15 21:52:33 +02:00
< / div >
< div class = "document" >
< div class = "documentwrapper" >
< div class = "bodywrapper" >
< div class = "body" role = "main" >
2020-06-13 00:36:45 +02:00
< h1 > Source code for django.db.models.manager< / h1 > < div class = "highlight" > < pre >
< span > < / span > < span class = "kn" > import< / span > < span class = "nn" > copy< / span >
< span class = "kn" > import< / span > < span class = "nn" > inspect< / span >
2020-12-20 14:36:24 +01:00
< span class = "kn" > from< / span > < span class = "nn" > importlib< / span > < span class = "kn" > import< / span > < span class = "n" > import_module< / span >
2020-06-13 00:36:45 +02:00
2020-12-20 14:36:24 +01:00
< span class = "kn" > from< / span > < span class = "nn" > django.db< / span > < span class = "kn" > import< / span > < span class = "n" > router< / span >
< span class = "kn" > from< / span > < span class = "nn" > django.db.models.query< / span > < span class = "kn" > import< / span > < span class = "n" > QuerySet< / span >
2020-06-13 00:36:45 +02:00
< span class = "k" > class< / span > < span class = "nc" > BaseManager< / span > < span class = "p" > :< / span >
< span class = "c1" > # To retain order, track each time a Manager instance is created.< / span >
< span class = "n" > creation_counter< / span > < span class = "o" > =< / span > < span class = "mi" > 0< / span >
< span class = "c1" > # Set to True for the ' objects' managers that are automatically created.< / span >
< span class = "n" > auto_created< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
< span class = "c1" > #: If set to True the manager will be serialized into migrations and will< / span >
< span class = "c1" > #: thus be available in e.g. RunPython operations.< / span >
< span class = "n" > use_in_migrations< / span > < span class = "o" > =< / span > < span class = "kc" > False< / span >
2020-12-20 14:36:24 +01:00
< span class = "k" > def< / span > < span class = "fm" > __new__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / 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 >
2020-06-13 00:36:45 +02:00
< span class = "c1" > # Capture the arguments to make returning them trivial.< / span >
< span class = "n" > obj< / span > < span class = "o" > =< / span > < span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __new__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > )< / span >
< span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "n" > _constructor_args< / span > < span class = "o" > =< / span > < span class = "p" > (< / span > < span class = "n" > args< / span > < span class = "p" > ,< / span > < span class = "n" > kwargs< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > obj< / span >
2020-12-20 14:36:24 +01:00
< span class = "k" > def< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
2020-06-13 00:36:45 +02:00
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / span > < span class = "p" > ()< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _set_creation_counter< / 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 = "kc" > None< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _db< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _hints< / span > < span class = "o" > =< / span > < span class = "p" > {}< / span >
2020-12-20 14:36:24 +01:00
< span class = "k" > def< / span > < span class = "fm" > __str__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
2020-06-13 00:36:45 +02:00
< span class = "sd" > " " " Return " app_label.model_label.manager_name" ." " " < / span >
< span class = "k" > return< / span > < span class = "s1" > ' < / span > < span class = "si" > %s< / span > < span class = "s1" > .< / span > < span class = "si" > %s< / span > < span class = "s1" > ' < / 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 = "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 >
2021-05-16 00:06:01 +02:00
< span class = "k" > def< / span > < span class = "nf" > __class_getitem__< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / 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" > return< / span > < span class = "bp" > cls< / span >
2020-06-13 00:36:45 +02:00
< span class = "k" > def< / span > < span class = "nf" > deconstruct< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "sd" > " " " < / span >
< span class = "sd" > Return a 5-tuple of the form (as_manager (True), manager_class,< / span >
< span class = "sd" > queryset_class, args, kwargs).< / span >
< span class = "sd" > Raise a ValueError if the manager is dynamically generated.< / span >
< span class = "sd" > " " " < / span >
< span class = "n" > qs_class< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _queryset_class< / span >
< span class = "k" > if< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "s1" > ' _built_with_as_manager' < / span > < span class = "p" > ,< / span > < span class = "kc" > False< / span > < span class = "p" > ):< / span >
< span class = "c1" > # using MyQuerySet.as_manager()< / span >
< span class = "k" > return< / span > < span class = "p" > (< / span >
< span class = "kc" > True< / span > < span class = "p" > ,< / span > < span class = "c1" > # as_manager< / span >
< span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "c1" > # manager_class< / span >
< span class = "s1" > ' < / span > < span class = "si" > %s< / span > < span class = "s1" > .< / span > < span class = "si" > %s< / span > < span class = "s1" > ' < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "n" > qs_class< / span > < span class = "o" > .< / span > < span class = "vm" > __module__< / span > < span class = "p" > ,< / span > < span class = "n" > qs_class< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span > < span class = "p" > ),< / span > < span class = "c1" > # qs_class< / span >
< span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "c1" > # args< / span >
< span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "c1" > # kwargs< / span >
< span class = "p" > )< / span >
< span class = "k" > else< / span > < span class = "p" > :< / span >
< span class = "n" > module_name< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "vm" > __module__< / span >
< span class = "n" > name< / 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 = "c1" > # Make sure it' s actually there and not an inner class< / span >
< span class = "n" > module< / span > < span class = "o" > =< / span > < span class = "n" > import_module< / span > < span class = "p" > (< / span > < span class = "n" > module_name< / 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 = "n" > module< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ):< / span >
< span class = "k" > raise< / span > < span class = "ne" > ValueError< / span > < span class = "p" > (< / span >
< span class = "s2" > " Could not find manager < / span > < span class = "si" > %s< / span > < span class = "s2" > in < / span > < span class = "si" > %s< / span > < span class = "s2" > .< / span > < span class = "se" > \n< / span > < span class = "s2" > " < / span >
< span class = "s2" > " Please note that you need to inherit from managers you " < / span >
< span class = "s2" > " dynamically generated with ' from_queryset()' ." < / span >
< span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > module_name< / span > < span class = "p" > )< / span >
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "p" > (< / span >
< span class = "kc" > False< / span > < span class = "p" > ,< / span > < span class = "c1" > # as_manager< / span >
< span class = "s1" > ' < / span > < span class = "si" > %s< / span > < span class = "s1" > .< / span > < span class = "si" > %s< / span > < span class = "s1" > ' < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "n" > module_name< / span > < span class = "p" > ,< / span > < span class = "n" > name< / span > < span class = "p" > ),< / span > < span class = "c1" > # manager_class< / span >
< span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "c1" > # qs_class< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _constructor_args< / span > < span class = "p" > [< / span > < span class = "mi" > 0< / span > < span class = "p" > ],< / span > < span class = "c1" > # args< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _constructor_args< / span > < span class = "p" > [< / span > < span class = "mi" > 1< / span > < span class = "p" > ],< / span > < span class = "c1" > # kwargs< / span >
< span class = "p" > )< / span >
< span class = "k" > def< / 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 = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "nf" > _get_queryset_methods< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > queryset_class< / span > < span class = "p" > ):< / span >
< span class = "k" > def< / span > < span class = "nf" > create_method< / span > < span class = "p" > (< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > method< / span > < span class = "p" > ):< / span >
< span class = "k" > def< / span > < span class = "nf" > manager_method< / 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 = "k" > return< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_queryset< / 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 = "n" > manager_method< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span > < span class = "o" > =< / span > < span class = "n" > method< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span >
< span class = "n" > manager_method< / span > < span class = "o" > .< / span > < span class = "vm" > __doc__< / span > < span class = "o" > =< / span > < span class = "n" > method< / span > < span class = "o" > .< / span > < span class = "vm" > __doc__< / span >
< span class = "k" > return< / span > < span class = "n" > manager_method< / span >
< span class = "n" > new_methods< / span > < span class = "o" > =< / span > < span class = "p" > {}< / span >
< span class = "k" > for< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > method< / span > < span class = "ow" > in< / span > < span class = "n" > inspect< / span > < span class = "o" > .< / span > < span class = "n" > getmembers< / span > < span class = "p" > (< / span > < span class = "n" > queryset_class< / span > < span class = "p" > ,< / span > < span class = "n" > predicate< / span > < span class = "o" > =< / span > < span class = "n" > inspect< / span > < span class = "o" > .< / span > < span class = "n" > isfunction< / span > < span class = "p" > ):< / span >
< span class = "c1" > # Only copy missing methods.< / span >
< span class = "k" > if< / span > < span class = "nb" > hasattr< / 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 = "k" > continue< / span >
< span class = "c1" > # Only copy public methods or methods with the attribute `queryset_only=False`.< / span >
< span class = "n" > queryset_only< / span > < span class = "o" > =< / span > < span class = "nb" > getattr< / span > < span class = "p" > (< / span > < span class = "n" > method< / span > < span class = "p" > ,< / span > < span class = "s1" > ' queryset_only' < / span > < span class = "p" > ,< / span > < span class = "kc" > None< / span > < span class = "p" > )< / span >
< span class = "k" > if< / span > < span class = "n" > queryset_only< / span > < span class = "ow" > or< / span > < span class = "p" > (< / span > < span class = "n" > queryset_only< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "ow" > and< / span > < span class = "n" > name< / span > < span class = "o" > .< / span > < span class = "n" > startswith< / span > < span class = "p" > (< / span > < span class = "s1" > ' _' < / span > < span class = "p" > )):< / span >
< span class = "k" > continue< / span >
< span class = "c1" > # Copy the method onto the manager.< / span >
< span class = "n" > new_methods< / span > < span class = "p" > [< / span > < span class = "n" > name< / span > < span class = "p" > ]< / span > < span class = "o" > =< / span > < span class = "n" > create_method< / span > < span class = "p" > (< / span > < span class = "n" > name< / span > < span class = "p" > ,< / span > < span class = "n" > method< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "n" > new_methods< / span >
< span class = "nd" > @classmethod< / span >
< span class = "k" > def< / span > < span class = "nf" > from_queryset< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,< / span > < span class = "n" > queryset_class< / span > < span class = "p" > ,< / span > < span class = "n" > class_name< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / span >
< span class = "k" > if< / span > < span class = "n" > class_name< / span > < span class = "ow" > is< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "n" > class_name< / span > < span class = "o" > =< / span > < span class = "s1" > ' < / span > < span class = "si" > %s< / span > < span class = "s1" > From< / span > < span class = "si" > %s< / span > < span class = "s1" > ' < / span > < span class = "o" > %< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span > < span class = "p" > ,< / span > < span class = "n" > queryset_class< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / span > < span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "nb" > type< / span > < span class = "p" > (< / span > < span class = "n" > class_name< / span > < span class = "p" > ,< / span > < span class = "p" > (< / span > < span class = "bp" > cls< / span > < span class = "p" > ,),< / span > < span class = "p" > {< / span >
< span class = "s1" > ' _queryset_class' < / span > < span class = "p" > :< / span > < span class = "n" > queryset_class< / span > < span class = "p" > ,< / span >
< span class = "o" > **< / span > < span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _get_queryset_methods< / span > < span class = "p" > (< / span > < span class = "n" > queryset_class< / span > < span class = "p" > ),< / span >
< span class = "p" > })< / span >
2021-05-16 00:06:01 +02:00
< span class = "k" > def< / 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 >
2020-06-13 00:36:45 +02:00
< 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 >
2021-05-16 00:06:01 +02:00
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > model< / span > < span class = "o" > =< / span > < span class = "bp" > cls< / span >
2020-06-13 00:36:45 +02:00
2021-05-16 00:06:01 +02:00
< span class = "nb" > setattr< / 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" > ManagerDescriptor< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ))< / span >
2020-06-13 00:36:45 +02:00
2021-05-16 00:06:01 +02:00
< span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > add_manager< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
2020-06-13 00:36:45 +02:00
< span class = "k" > def< / span > < span class = "nf" > _set_creation_counter< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "sd" > " " " < / span >
< span class = "sd" > Set the creation counter value for this instance and increment the< / span >
< span class = "sd" > class-level copy.< / span >
< span class = "sd" > " " " < / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span > < span class = "o" > =< / span > < span class = "n" > BaseManager< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span >
< span class = "n" > BaseManager< / span > < span class = "o" > .< / span > < span class = "n" > creation_counter< / span > < span class = "o" > +=< / span > < span class = "mi" > 1< / span >
< span class = "k" > def< / span > < span class = "nf" > db_manager< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > using< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ,< / span > < span class = "n" > hints< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / 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 = "n" > obj< / span > < span class = "o" > .< / span > < span class = "n" > _db< / span > < span class = "o" > =< / span > < span class = "n" > using< / span > < span class = "ow" > or< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _db< / span >
< span class = "n" > obj< / span > < span class = "o" > .< / span > < span class = "n" > _hints< / span > < span class = "o" > =< / span > < span class = "n" > hints< / span > < span class = "ow" > or< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _hints< / span >
< span class = "k" > return< / span > < span class = "n" > obj< / span >
< span class = "nd" > @property< / span >
< span class = "k" > def< / span > < span class = "nf" > db< / 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< / span > < span class = "ow" > or< / span > < span class = "n" > router< / span > < span class = "o" > .< / span > < span class = "n" > db_for_read< / 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 = "o" > **< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _hints< / span > < span class = "p" > )< / span >
< span class = "c1" > #######################< / span >
< span class = "c1" > # PROXIES TO QUERYSET #< / span >
< span class = "c1" > #######################< / span >
< span class = "k" > def< / span > < span class = "nf" > get_queryset< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "sd" > " " " < / span >
< span class = "sd" > Return a new QuerySet object. Subclasses can override this method to< / span >
< span class = "sd" > customize the behavior of the Manager.< / span >
< span class = "sd" > " " " < / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _queryset_class< / 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 = "p" > ,< / span > < span class = "n" > using< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _db< / span > < span class = "p" > ,< / span > < span class = "n" > hints< / span > < span class = "o" > =< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _hints< / span > < span class = "p" > )< / span >
< span class = "k" > def< / span > < span class = "nf" > all< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
< span class = "c1" > # We can' t proxy this method through the `QuerySet` like we do for the< / span >
< span class = "c1" > # rest of the `QuerySet` methods. This is because `QuerySet.all()`< / span >
< span class = "c1" > # works by creating a " copy" of the current queryset and in making said< / span >
< span class = "c1" > # copy, all the cached `prefetch_related` lookups are lost. See the< / span >
< span class = "c1" > # implementation of `RelatedManager.get_queryset()` for a better< / span >
< span class = "c1" > # understanding of how this comes into play.< / span >
< span class = "k" > return< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > get_queryset< / span > < span class = "p" > ()< / span >
2020-12-20 14:36:24 +01:00
< span class = "k" > def< / 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 >
2020-06-13 00:36:45 +02:00
< span class = "k" > return< / span > < span class = "p" > (< / span >
< span class = "nb" > isinstance< / span > < span class = "p" > (< / span > < span class = "n" > other< / 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 = "ow" > and< / span >
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > _constructor_args< / span > < span class = "o" > ==< / span > < span class = "n" > other< / span > < span class = "o" > .< / span > < span class = "n" > _constructor_args< / span >
< span class = "p" > )< / span >
2020-12-20 14:36:24 +01:00
< span class = "k" > def< / span > < span class = "fm" > __hash__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ):< / span >
2020-06-13 00:36:45 +02:00
< span class = "k" > return< / span > < span class = "nb" > id< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > )< / span >
< span class = "k" > class< / span > < span class = "nc" > Manager< / span > < span class = "p" > (< / span > < span class = "n" > BaseManager< / span > < span class = "o" > .< / span > < span class = "n" > from_queryset< / span > < span class = "p" > (< / span > < span class = "n" > QuerySet< / span > < span class = "p" > )):< / span >
< span class = "k" > pass< / span >
< span class = "k" > class< / span > < span class = "nc" > ManagerDescriptor< / span > < span class = "p" > :< / span >
2020-12-20 14:36:24 +01:00
< span class = "k" > def< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > manager< / span > < span class = "p" > ):< / span >
2020-06-13 00:36:45 +02:00
< span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > manager< / span > < span class = "o" > =< / span > < span class = "n" > manager< / span >
2020-12-20 14:36:24 +01:00
< span class = "k" > def< / span > < span class = "fm" > __get__< / 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 = "bp" > cls< / span > < span class = "o" > =< / span > < span class = "kc" > None< / span > < span class = "p" > ):< / span >
2020-06-13 00:36:45 +02:00
< span class = "k" > if< / span > < span class = "n" > instance< / span > < span class = "ow" > is< / span > < span class = "ow" > not< / span > < span class = "kc" > None< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > AttributeError< / span > < span class = "p" > (< / span > < span class = "s2" > " Manager isn' t accessible via < / span > < span class = "si" > %s< / span > < span class = "s2" > instances" < / span > < span class = "o" > %< / span > < span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "vm" > __name__< / 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" > abstract< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > AttributeError< / span > < span class = "p" > (< / span > < span class = "s2" > " Manager isn' t available; < / span > < span class = "si" > %s< / span > < span class = "s2" > is abstract" < / span > < span class = "o" > %< / 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" > object_name< / span > < span class = "p" > ,< / 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" > swapped< / span > < span class = "p" > :< / span >
< span class = "k" > raise< / span > < span class = "ne" > AttributeError< / span > < span class = "p" > (< / span >
2021-05-16 00:06:01 +02:00
< span class = "s2" > " Manager isn' t available; ' < / span > < span class = "si" > %s< / span > < span class = "s2" > ' has been swapped for ' < / span > < span class = "si" > %s< / span > < span class = "s2" > ' " < / span > < span class = "o" > %< / 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" > label< / span > < span class = "p" > ,< / span >
2020-06-13 00:36:45 +02:00
< span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > swapped< / span > < span class = "p" > ,< / span >
< span class = "p" > )< / span >
< span class = "p" > )< / span >
< span class = "k" > return< / span > < span class = "bp" > cls< / span > < span class = "o" > .< / span > < span class = "n" > _meta< / span > < span class = "o" > .< / span > < span class = "n" > managers_map< / span > < span class = "p" > [< / span > < span class = "bp" > self< / span > < span class = "o" > .< / span > < span class = "n" > manager< / span > < span class = "o" > .< / span > < span class = "n" > name< / span > < span class = "p" > ]< / span >
< span class = "k" > class< / span > < span class = "nc" > EmptyManager< / span > < span class = "p" > (< / span > < span class = "n" > Manager< / span > < span class = "p" > ):< / span >
2020-12-20 14:36:24 +01:00
< span class = "k" > def< / span > < span class = "fm" > __init__< / span > < span class = "p" > (< / span > < span class = "bp" > self< / span > < span class = "p" > ,< / span > < span class = "n" > model< / span > < span class = "p" > ):< / span >
2020-06-13 00:36:45 +02:00
< span class = "nb" > super< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "fm" > __init__< / 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" > model< / span >
< span class = "k" > def< / span > < span class = "nf" > get_queryset< / span > < span class = "p" > (< / span > < span class = "bp" > self< / 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" > get_queryset< / span > < span class = "p" > ()< / span > < span class = "o" > .< / span > < span class = "n" > none< / span > < span class = "p" > ()< / span >
< / pre > < / div >
2020-10-15 01:31:30 +02:00
< div class = "clearer" > < / div >
2020-06-13 00:36:45 +02:00
< / div >
< / div >
< / div >
2020-06-15 21:52:33 +02:00
< div class = "sphinxsidebar" role = "navigation" aria-label = "main navigation" >
< div class = "sphinxsidebarwrapper" >
< p class = "logo" > < a href = "../../../../index.html" >
< img class = "logo" src = "../../../../_static/evennia_logo.png" alt = "Logo" / >
< / a > < / p >
< div 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" / >
< input type = "submit" value = "Go" / >
< / form >
< / div >
< / div >
2021-03-06 01:37:43 +01:00
< script > $ ( '#searchbox' ) . show ( 0 ) ; < / script > < h3 > Links< / h3 >
< ul >
< li > < a href = "https://www.evennia.com" > Home page< / a > < / li >
< li > < a href = "https://github.com/evennia/evennia" > Evennia Github< / a > < / li >
< li > < a href = "http://games.evennia.com" > Game Index< / a > < / li >
2021-08-06 00:47:51 +02:00
< li >
< a href = "https://discord.gg/AJJpcRUhtF" > Discord< / a > -
< a href = "https://github.com/evennia/evennia/discussions" > Discussions< / a > -
2021-08-06 00:53:44 +02:00
< a href = "https://evennia.blogspot.com/" > Blog< / a >
2021-03-06 01:37:43 +01:00
< / li >
< / ul >
2020-06-15 21:52:33 +02:00
< h3 > Versions< / h3 >
< ul >
< li > < a href = "manager.html" > 1.0-dev (develop branch)< / a > < / li >
< / ul >
2020-06-13 00:36:45 +02:00
2020-06-15 21:52:33 +02:00
< / div >
< / div >
< div class = "clearer" > < / div >
< / div >
< div class = "related" role = "navigation" aria-label = "related navigation" >
< 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 >
2020-07-14 00:21:00 +02:00
< li class = "nav-item nav-item-0" > < a href = "../../../../index.html" > Evennia 1.0-dev< / a > » < / li >
2020-10-15 01:31:30 +02:00
< 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.manager< / a > < / li >
2020-06-15 21:52:33 +02:00
< / ul >
2021-06-23 18:58:26 +02:00
< div class = "develop" > develop branch< / div >
2020-06-15 21:52:33 +02:00
< / div >
< div class = "footer" role = "contentinfo" >
© Copyright 2020, The Evennia developer community.
2020-10-15 01:31:30 +02:00
Created using < a href = "https://www.sphinx-doc.org/" > Sphinx< / a > 3.2.1.
2020-06-15 21:52:33 +02:00
< / div >
< / body >
2020-06-13 00:36:45 +02:00
< / html >