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

BannedUserContent_collections+

ManyToOneRel

integer UNSIGNED

abuse_reports

ManyToOneRel

integer UNSIGNED

addon_count

PositiveIntegerField

addonCount

integer UNSIGNED

addon count

addons

ManyToManyField

addons

through bandwagon.CollectionAddon

addons

author

ForeignKey

author_id

integer

author

bannedusercontent

ManyToManyRel

through users.BannedUserContent_collections

collectionaddon

ManyToOneRel

integer UNSIGNED

created

DateTimeField

created

datetime(6)

created

decisions_on

ManyToOneRel

integer UNSIGNED

default_locale

CharField

defaultlocale

varchar(10)

default locale

deleted

BooleanField

deleted

bool

deleted

description

NoURLsField

description

integer UNSIGNED

description

id (pk)

PositiveAutoField

id

integer UNSIGNED AUTO_INCREMENT

id

listed

BooleanField

listed

bool

listed

modified

DateTimeField

modified

datetime(6)

modified

name

TranslatedField

name

integer UNSIGNED

name

slug

CharField

slug

varchar(30)

slug

uuid

UUIDField

uuid

char(32)

uuid

Relations

Field Name

Field Type

Database Column

Database Type

Related Model

Related Name

addons

ManyToManyField

addons

through bandwagon.CollectionAddon

addons.Addon

collections

author

ForeignKey

author_id

integer

users.UserProfile

collections

description

NoURLsField

description

integer UNSIGNED

translations.NoURLsTranslation

Collection_description_set+

name

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

BannedUserContent_collections+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

users.BannedUserContent_collections

collection

ForeignKey

abuse_reports

ManyToOneRel

integer UNSIGNED

abuse.AbuseReport

collection

ForeignKey

collection_set

ManyToOneRel

integer UNSIGNED

bandwagon.CollectionAddon

collection

ForeignKey

collection_set

ManyToManyRel

through users.BannedUserContent_collections

users.BannedUserContent

collections

ManyToManyField

decisions_on

ManyToOneRel

integer UNSIGNED

abuse.ContentDecision

collection

ForeignKey

Methods

Other Methods

Method Name

Signature

add_addon

(self, addon)

clean_slug

(self)

get_admin_absolute_url

(self)

get_admin_url_path

(self)

get_all_comments

(self)

get_fallback

()

get_next_by_created

(self, *, field=<django.db.models.fields.DateTimeField: created>, is_next=True, **kwargs)

get_next_by_modified

(self, *, field=<django.db.models.fields.DateTimeField: modified>, is_next=True, **kwargs)

get_previous_by_created

(self, *, field=<django.db.models.fields.DateTimeField: created>, is_next=False, **kwargs)

get_previous_by_modified

(self, *, field=<django.db.models.fields.DateTimeField: modified>, is_next=False, **kwargs)

get_unfiltered_manager

()

get_url_path

(self)

is_public

(self)

owned_by

(self, user)

post_save

(sender, instance, **kwargs)

reload

(self)

remove_addon

(self, addon)

serializable_reference

(self)

transformer

(collections)

undelete

(self)

update

(self, **kw)

Private Methods

Method Name

Signature

_get_field_value_map

(self, meta, exclude=None)

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 !!!