django_utils package¶
Submodules¶
django_utils.base_models module¶
-
class
django_utils.base_models.
CreatedAtModelBase
(*args, **kwargs)[source]¶ Bases:
django_utils.base_models.ModelBase
-
created_at
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
get_next_by_created_at
(**morekwargs)¶
-
get_next_by_updated_at
(**morekwargs)¶
-
get_previous_by_created_at
(**morekwargs)¶
-
get_previous_by_updated_at
(**morekwargs)¶
-
updated_at
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
-
class
django_utils.base_models.
ModelBase
(*args, **kwargs)[source]¶ Bases:
django.db.models.base.Model
-
class
django_utils.base_models.
ModelBaseMeta
[source]¶ Bases:
django.db.models.base.ModelBase
Model base with more readable naming convention
Example: Assuming the model is called app.FooBarObject
Default Django table name: app_foobarobject Table name with this base: app_foo_bar_object
-
class
django_utils.base_models.
NameCreatedAtModelBase
(*args, **kwargs)[source]¶ Bases:
django_utils.base_models.NameModelBase
,django_utils.base_models.CreatedAtModelBase
-
get_next_by_created_at
(**morekwargs)¶
-
get_next_by_updated_at
(**morekwargs)¶
-
get_previous_by_created_at
(**morekwargs)¶
-
get_previous_by_updated_at
(**morekwargs)¶
-
-
class
django_utils.base_models.
NameMixin
[source]¶ Bases:
object
Mixin to automatically get a unicode and repr string base on the name
>>> x = NameMixin() >>> x.pk = 123 >>> x.name = 'test' >>> repr(x) '<NameMixin[123]: test>' >>> str(x) 'test' >>> str(six.text_type(x)) 'test'
-
class
django_utils.base_models.
NameModelBase
(*args, **kwargs)[source]¶ Bases:
django_utils.base_models.NameMixin
,django_utils.base_models.ModelBase
-
name
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
-
class
django_utils.base_models.
SlugCreatedAtModelBase
(*args, **kwargs)[source]¶ Bases:
django_utils.base_models.SlugModelBase
,django_utils.base_models.CreatedAtModelBase
-
get_next_by_created_at
(**morekwargs)¶
-
get_next_by_updated_at
(**morekwargs)¶
-
get_previous_by_created_at
(**morekwargs)¶
-
get_previous_by_updated_at
(**morekwargs)¶
-
-
class
django_utils.base_models.
SlugMixin
[source]¶ Bases:
django_utils.base_models.NameMixin
Mixin to automatically slugify the name and add both a name and slug to the model
>>> x = NameMixin() >>> x.pk = 123 >>> x.name = 'test' >>> repr(x) '<NameMixin[123]: test>' >>> str(x) 'test' >>> str(six.text_type(x)) 'test'
-
class
django_utils.base_models.
SlugModelBase
(*args, **kwargs)[source]¶ Bases:
django_utils.base_models.SlugMixin
,django_utils.base_models.NameModelBase
-
slug
¶ A wrapper for a deferred-loading field. When the value is read from this object the first time, the query is executed.
-
django_utils.choices module¶
Usage¶
Create a Choices
class and add Choice
objects to the
class to define your choices.
Example with explicit values:¶
The normal Django version:
class Human(models.Model):
GENDER = (
('m', 'Male'),
('f', 'Female'),
('o', 'Other'),
)
gender = models.CharField(max_length=1, choices=GENDER)
The Django Utils Choices version:
from django_utils import choices
class Human(models.Model):
class Gender(choices.Choices):
Male = choices.Choice('m')
Female = choices.Choice('f')
Other = choices.Choice('o')
gender = models.CharField(max_length=1, choices=Gender)
To reference these properties:
Human.create(gender=Human.Gender.Male)
Example with implicit values:¶
The normal Django version:
class SomeModel(models.Model):
SOME_ENUM = (
(1, 'foo'),
(2, 'bar'),
(3, 'spam'),
(4, 'eggs'),
)
enum = models.IntegerField(choices=SOME_ENUM, default=1)
The Django Utils Choices version:
from django_utils import choices
class SomeModel(models.Model):
class Enum(choices.Choices):
Foo = choices.Choice()
Bar = choices.Choice()
Spam = choices.Choice()
Eggs = choices.Choice()
enum = models.IntegerField(
choices=Enum, default=Enum.Foo)
To reference these properties:
SomeModel.create(enum=SomeModel.Enum.Spam)
-
class
django_utils.choices.
Choice
(value=None, label=None)[source]¶ Bases:
object
The choice object has an optional label and value. If the value is not given an autoincrementing id (starting from 1) will be used
>>> choice = Choice('value', 'label') >>> choice <Choice[1]:label> >>> str(choice) 'label'
>>> choice = Choice() >>> choice <Choice[2]:None> >>> str(choice) 'None'
-
order
= 0¶
-
-
class
django_utils.choices.
Choices
[source]¶ Bases:
object
The choices class is what you should inherit in your Django models
>>> choices = Choices() >>> choices.choices[0] Traceback (most recent call last): ... KeyError: 'Key 0 does not exist' >>> choices.choices OrderedDict() >>> str(choices.choices) 'OrderedDict()' >>> choices.choices.items() [] >>> choices.choices.keys() [] >>> choices.choices.values() [] >>> list(choices) []
>>> class ChoiceTest(Choices): ... a = Choice() >>> choices = ChoiceTest() >>> choices.choices.items() [(0, <Choice[...]:a>)] >>> choices.a 0 >>> choices.choices['a'] <Choice[...]:a> >>> choices.choices[0] <Choice[...]:a> >>> choices.choices.keys() [0] >>> choices.choices.values() ['a'] >>> list(choices) [(0, <Choice[...]:a>)] >>> list(ChoiceTest) [(0, <Choice[...]:a>)]
-
choices
= OrderedDict()¶
-
-
class
django_utils.choices.
ChoicesDict
[source]¶ Bases:
object
The choices dict is an object that stores a sorted representation of the values by key and database value
-
class
django_utils.choices.
ChoicesMeta
[source]¶ Bases:
type
The choices metaclass is where all the magic happens, this automatically creates a ChoicesDict to get a sorted list of keys and values
-
class
django_utils.choices.
LiteralChoices
[source]¶ Bases:
django_utils.choices.Choices
Special version of the Choices class that uses the label as the value
>>> class Role(LiteralChoices): ... admin = Choice() ... user = Choice() ... guest = Choice()
>>> Role.choices.values() ['admin', 'user', 'guest'] >>> Role.choices.keys() ['admin', 'user', 'guest']
>>> class RoleWithImplicitChoice(LiteralChoices): ... ADMIN = 'admin' ... USER = 'user' ... GUEST = 'guest'
>>> Role.choices.values() ['admin', 'user', 'guest'] >>> Role.choices.keys() ['admin', 'user', 'guest'] >>> Role.admin 'admin'
-
choices
= OrderedDict()¶
-
django_utils.fields module¶
django_utils.queryset module¶
-
django_utils.queryset.
queryset_iterator
(queryset, chunksize=1000, getfunc=<built-in function getattr>)[source]¶ ‘’ Iterate over a Django Queryset ordered by the primary key
This method loads a maximum of chunksize (default: 1000) rows in it’s memory at the same time while django normally would load all rows in it’s memory. Using the iterator() method only causes it to not preload all the classes.
Note that the implementation of the iterator does not support ordered query sets.
django_utils.view_decorators module¶
-
exception
django_utils.view_decorators.
ViewError
[source]¶ Bases:
exceptions.Exception
-
django_utils.view_decorators.
env
(function=None, login_required=False, response_class=<class 'django.http.response.HttpResponse'>)[source]¶ View decorator that automatically adds context and renders response
Keyword arguments: login_required – is everyone allowed or only authenticated users
Adds a RequestContext (request.context) with the following context items: name – current function name
Stores the template in request.template and assumes it to be in <app>/<view>.html