bandwagon.Collection
Model Info
Key |
Value |
---|---|
Model Name |
Collection |
Verbose Name |
collection |
Verbose Name Plural |
collections |
Docstring |
Collection(created, modified, id, uuid, name, slug, description, default_locale, listed, addon_count, author, deleted) |
Is Abstract |
False |
Is Proxy |
False |
Is Managed |
True |
Ordering |
[] |
Permissions |
[] |
Default Permissions |
(‘add’, ‘change’, ‘delete’, ‘view’) |
Indexes |
[<Index: fields=[‘created’] name=’collections_created_idx’>, <Index: fields=[‘listed’] name=’collections_listed_idx’>, <Index: fields=[‘slug’] name=’collections_slug_idx’>] |
Constraints |
[<UniqueConstraint: fields=(‘author’, ‘slug’) name=’author_id’>] |
Database Table |
collections |
Base Manager |
unfiltered |
Default Manager |
None |
File |
/data/olympia/src/olympia/bandwagon/models.py |
Starting Line Number |
56 |
Method Resolution Order |
(<class ‘olympia.bandwagon.models.Collection’>, <class ‘olympia.amo.models.ModelBase’>, <class ‘olympia.amo.models.SaveUpdateMixin’>, <class ‘django.db.models.base.Model’>, <class ‘django.db.models.utils.AltersData’>, <class ‘object’>) |
Fields
Field Name |
Field Type |
Database Column |
Database Type |
Verbose Name |
---|---|---|---|---|
|
ManyToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
PositiveIntegerField |
addonCount |
integer UNSIGNED |
addon count |
|
ManyToManyField |
addons |
through bandwagon.CollectionAddon |
addons |
|
ForeignKey |
author_id |
integer |
author |
|
ManyToManyRel |
through users.BannedUserContent_collections |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
DateTimeField |
created |
datetime(6) |
created |
|
ManyToOneRel |
integer UNSIGNED |
||
|
CharField |
defaultlocale |
varchar(10) |
default locale |
|
BooleanField |
deleted |
bool |
deleted |
|
NoURLsField |
description |
integer UNSIGNED |
description |
|
PositiveAutoField |
id |
integer UNSIGNED AUTO_INCREMENT |
id |
|
BooleanField |
listed |
bool |
listed |
|
DateTimeField |
modified |
datetime(6) |
modified |
|
TranslatedField |
name |
integer UNSIGNED |
name |
|
CharField |
slug |
varchar(30) |
slug |
|
UUIDField |
uuid |
char(32) |
uuid |
Relations
Field Name |
Field Type |
Database Column |
Database Type |
Related Model |
Related Name |
---|---|---|---|---|---|
|
ManyToManyField |
addons |
through bandwagon.CollectionAddon |
addons.Addon |
collections |
|
ForeignKey |
author_id |
integer |
users.UserProfile |
collections |
|
NoURLsField |
description |
integer UNSIGNED |
translations.NoURLsTranslation |
Collection_description_set+ |
|
TranslatedField |
name |
integer UNSIGNED |
translations.Translation |
Collection_name_set+ |
fields_reverse_relation=[FieldReverseRelation(name=’abuse_reports’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’abuse.AbuseReport’, field_name_on_related_model=’collection’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’decisions_on’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’abuse.ContentDecision’, field_name_on_related_model=’collection’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’collection_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’bandwagon.CollectionAddon’, field_name_on_related_model=’collection’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’BannedUserContent_collections+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’users.BannedUserContent_collections’, field_name_on_related_model=’collection’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’collection_set’, field_type=’ManyToManyRel’, field_db_type=’through users.BannedUserContent_collections’, related_model=’users.BannedUserContent’, field_name_on_related_model=’collections’, field_type_on_related_model=’ManyToManyField’)]
Reverse Relations
Field Name |
Field Type |
Database Type |
Related Model |
Field Name on Related Model |
Field Type on Related Model |
---|---|---|---|---|---|
|
ManyToOneRel |
integer UNSIGNED |
users.BannedUserContent_collections |
collection |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
abuse.AbuseReport |
collection |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
bandwagon.CollectionAddon |
collection |
ForeignKey |
|
ManyToManyRel |
through users.BannedUserContent_collections |
users.BannedUserContent |
collections |
ManyToManyField |
|
ManyToOneRel |
integer UNSIGNED |
abuse.ContentDecision |
collection |
ForeignKey |
Methods
Other Methods
Method Name |
Signature |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Private Methods
Method Name |
Signature |
---|---|
|
|
Custom Managers
default
Class: CollectionManager
*Base for all managers in AMO.
Returns BaseQuerySets.
If a model has translated fields, they’ll be attached through a transform function.*
Custom Methods
transform(self, fn)
Custom QuerySet
Class: CollectionQuerySet
Represent a lazy database lookup for a set of objects.
Custom Methods
no_transforms(self)
only_translations(self)
Remove all transforms except translations.
optimized_count(self)
*Slightly optimized count() for cases where there is a DISTINCT in the queryset.
When a count() call is made on a queryset that has a distinct, that causes django to run the full SELECT (including all fields, distinct, ordering etc) in a subquery and then COUNT() on the result of that subquery, which is costly/innefficient. That’s tracked in https://code.djangoproject.com/ticket/30685. We can’t easily fix the fact that there is a subquery, but we can avoid selecting all fields and ordering in that subquery needlessly.*
pop_transforms(self)
transform(self, fn)
undelete(self)
objects
Class: CollectionManager
*Base for all managers in AMO.
Returns BaseQuerySets.
If a model has translated fields, they’ll be attached through a transform function.*
Custom Methods
transform(self, fn)
Custom QuerySet
Class: CollectionQuerySet
Represent a lazy database lookup for a set of objects.
Custom Methods
no_transforms(self)
only_translations(self)
Remove all transforms except translations.
optimized_count(self)
*Slightly optimized count() for cases where there is a DISTINCT in the queryset.
When a count() call is made on a queryset that has a distinct, that causes django to run the full SELECT (including all fields, distinct, ordering etc) in a subquery and then COUNT() on the result of that subquery, which is costly/innefficient. That’s tracked in https://code.djangoproject.com/ticket/30685. We can’t easily fix the fact that there is a subquery, but we can avoid selecting all fields and ordering in that subquery needlessly.*
pop_transforms(self)
transform(self, fn)
undelete(self)
unfiltered
Class: CollectionManager
*Base for all managers in AMO.
Returns BaseQuerySets.
If a model has translated fields, they’ll be attached through a transform function.*
Custom Methods
transform(self, fn)
Custom QuerySet
Class: CollectionQuerySet
Represent a lazy database lookup for a set of objects.
Custom Methods
no_transforms(self)
only_translations(self)
Remove all transforms except translations.
optimized_count(self)
*Slightly optimized count() for cases where there is a DISTINCT in the queryset.
When a count() call is made on a queryset that has a distinct, that causes django to run the full SELECT (including all fields, distinct, ordering etc) in a subquery and then COUNT() on the result of that subquery, which is costly/innefficient. That’s tracked in https://code.djangoproject.com/ticket/30685. We can’t easily fix the fact that there is a subquery, but we can avoid selecting all fields and ordering in that subquery needlessly.*
pop_transforms(self)
transform(self, fn)
undelete(self)
unfiltered_for_relations
Class: UnfilteredCollectionManagerForRelations
*Like CollectionManager, but defaults to include deleted objects.
Designed to be used in reverse relations of Collection that want to include soft-deleted objects.*
Custom Methods
transform(self, fn)
Custom QuerySet
Class: CollectionQuerySet
Represent a lazy database lookup for a set of objects.
Custom Methods
no_transforms(self)
only_translations(self)
Remove all transforms except translations.
optimized_count(self)
*Slightly optimized count() for cases where there is a DISTINCT in the queryset.
When a count() call is made on a queryset that has a distinct, that causes django to run the full SELECT (including all fields, distinct, ordering etc) in a subquery and then COUNT() on the result of that subquery, which is costly/innefficient. That’s tracked in https://code.djangoproject.com/ticket/30685. We can’t easily fix the fact that there is a subquery, but we can avoid selecting all fields and ordering in that subquery needlessly.*
pop_transforms(self)
transform(self, fn)
undelete(self)
!!! THIS DOCUMENT WAS AUTOGENERATED ON 2025-07-09 !!!