addons.Addon
Model Info
Key |
Value |
---|---|
Model Name |
Addon |
Verbose Name |
addon |
Verbose Name Plural |
addons |
Docstring |
Addon(created, modified, id, guid, slug, name, default_locale, type, status, icon_type, icon_hash, homepage, support_email, support_url, description, summary, developer_comments, eula, privacy_policy, average_rating, bayesian_rating, total_ratings, text_ratings_count, weekly_downloads, hotness, average_daily_users, last_updated, disabled_by_user, target_locale, contributions, _current_version, is_experimental, reputation, requires_payment) |
Is Abstract |
False |
Is Proxy |
False |
Is Managed |
True |
Ordering |
[] |
Permissions |
[] |
Default Permissions |
(‘add’, ‘change’, ‘delete’, ‘view’) |
Indexes |
[<Index: fields=[‘bayesian_rating’] name=’bayesianrating’>, <Index: fields=[‘created’] name=’addons_created_idx’>, <Index: fields=[‘_current_version’] name=’current_version’>, <Index: fields=[‘disabled_by_user’] name=’inactive’>, <Index: fields=[‘hotness’] name=’hotness_idx’>, <Index: fields=[‘last_updated’] name=’last_updated’>, <Index: fields=[‘modified’] name=’modified_idx’>, <Index: fields=[‘status’] name=’addons_status_idx’>, <Index: fields=[‘target_locale’] name=’target_locale’>, <Index: fields=[‘type’] name=’addontype_id’>, <Index: fields=[‘weekly_downloads’] name=’weeklydownloads_idx’>, <Index: fields=[‘average_daily_users’, ‘type’] name=’adus_type_idx’>, <Index: fields=[‘bayesian_rating’, ‘type’] name=’rating_type_idx’>, <Index: fields=[‘created’, ‘type’] name=’created_type_idx’>, <Index: fields=[‘last_updated’, ‘type’] name=’last_updated_type_idx’>, <Index: fields=[‘modified’, ‘type’] name=’modified_type_idx’>, <Index: fields=[‘type’, ‘status’, ‘disabled_by_user’] name=’type_status_inactive_idx’>, <Index: fields=[‘weekly_downloads’, ‘type’] name=’downloads_type_idx’>, <Index: fields=[‘type’, ‘status’, ‘disabled_by_user’, ‘_current_version’] name=’visible_idx’>, <Index: fields=[‘name’, ‘status’, ‘type’] name=’name_2’>] |
Constraints |
[] |
Database Table |
addons |
Base Manager |
unfiltered |
Default Manager |
None |
File |
/data/olympia/src/olympia/addons/models.py |
Starting Line Number |
490 |
Method Resolution Order |
(<class ‘olympia.addons.models.Addon’>, <class ‘olympia.amo.models.OnChangeMixin’>, <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 |
||
|
ForeignKey |
current_version |
integer UNSIGNED |
current version |
|
ManyToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
OneToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
OneToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
FilterableManyToManyField |
authors |
through addons.AddonUser |
authors |
|
PositiveIntegerField |
average_daily_users |
integer UNSIGNED |
average daily users |
|
FloatField |
averagerating |
double precision |
average rating |
|
ManyToManyRel |
through users.BannedUserContent_addons |
||
|
FloatField |
bayesianrating |
double precision |
bayesian rating |
|
ManyToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
ManyToManyRel |
through bandwagon.CollectionAddon |
||
|
OneToOneRel |
integer UNSIGNED |
||
|
URLField |
contributions |
varchar(255) |
contributions |
|
DateTimeField |
created |
datetime(6) |
created |
|
ManyToOneRel |
integer UNSIGNED |
||
|
CharField |
defaultlocale |
varchar(10) |
default locale |
|
PurifiedMarkdownField |
description |
integer UNSIGNED |
description |
|
PurifiedMarkdownField |
developercomments |
integer UNSIGNED |
developer comments |
|
BooleanField |
inactive |
bool |
disabled by user |
|
OneToOneRel |
integer UNSIGNED |
||
|
PurifiedMarkdownField |
eula |
integer UNSIGNED |
eula |
|
ManyToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
CharField |
guid |
varchar(255) |
guid |
|
TranslatedField |
homepage |
integer UNSIGNED |
homepage |
|
FloatField |
hotness |
double precision |
hotness |
|
CharField |
icon_hash |
varchar(8) |
icon hash |
|
CharField |
icontype |
varchar(25) |
icon type |
|
PositiveAutoField |
id |
integer UNSIGNED AUTO_INCREMENT |
id |
|
BooleanField |
experimental |
bool |
is experimental |
|
DateTimeField |
last_updated |
datetime(6) |
last updated |
|
ManyToOneRel |
integer UNSIGNED |
||
|
DateTimeField |
modified |
datetime(6) |
modified |
|
TranslatedField |
name |
integer UNSIGNED |
name |
|
ManyToOneRel |
integer UNSIGNED |
||
|
OneToOneRel |
integer UNSIGNED |
||
|
PurifiedMarkdownField |
privacypolicy |
integer UNSIGNED |
privacy policy |
|
ManyToOneRel |
integer UNSIGNED |
||
|
OneToOneRel |
integer UNSIGNED |
||
|
OneToOneRel |
integer UNSIGNED |
||
|
SmallIntegerField |
reputation |
smallint |
reputation |
|
BooleanField |
requires_payment |
bool |
requires payment |
|
OneToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
ManyToOneRel |
integer UNSIGNED |
||
|
CharField |
slug |
varchar(30) |
slug |
|
PositiveIntegerField |
status |
integer UNSIGNED |
status |
|
NoURLsField |
summary |
integer UNSIGNED |
summary |
|
TranslatedField |
supportemail |
integer UNSIGNED |
support email |
|
TranslatedField |
supporturl |
integer UNSIGNED |
support url |
|
ManyToManyRel |
through tags.AddonTag |
||
|
CharField |
target_locale |
varchar(255) |
target locale |
|
PositiveIntegerField |
textreviewscount |
integer UNSIGNED |
text ratings count |
|
PositiveIntegerField |
totalreviews |
integer UNSIGNED |
total ratings |
|
PositiveIntegerField |
addontype_id |
integer UNSIGNED |
type |
|
ManyToOneRel |
integer UNSIGNED |
||
|
PositiveIntegerField |
weeklydownloads |
integer UNSIGNED |
weekly downloads |
|
OneToOneRel |
integer UNSIGNED |
Relations
Field Name |
Field Type |
Database Column |
Database Type |
Related Model |
Related Name |
---|---|---|---|---|---|
|
ForeignKey |
current_version |
integer UNSIGNED |
versions.Version |
+ |
|
FilterableManyToManyField |
authors |
through addons.AddonUser |
users.UserProfile |
addons |
|
PurifiedMarkdownField |
description |
integer UNSIGNED |
translations.PurifiedMarkdownTranslation |
Addon_description_set+ |
|
PurifiedMarkdownField |
developercomments |
integer UNSIGNED |
translations.PurifiedMarkdownTranslation |
Addon_developer_comments_set+ |
|
PurifiedMarkdownField |
eula |
integer UNSIGNED |
translations.PurifiedMarkdownTranslation |
Addon_eula_set+ |
|
TranslatedField |
homepage |
integer UNSIGNED |
translations.Translation |
Addon_homepage_set+ |
|
TranslatedField |
name |
integer UNSIGNED |
translations.Translation |
Addon_name_set+ |
|
PurifiedMarkdownField |
privacypolicy |
integer UNSIGNED |
translations.PurifiedMarkdownTranslation |
Addon_privacy_policy_set+ |
|
NoURLsField |
summary |
integer UNSIGNED |
translations.NoURLsTranslation |
Addon_summary_set+ |
|
TranslatedField |
supportemail |
integer UNSIGNED |
translations.Translation |
Addon_support_email_set+ |
|
TranslatedField |
supporturl |
integer UNSIGNED |
translations.Translation |
Addon_support_url_set+ |
fields_reverse_relation=[FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’abuse.CinderJob’, field_name_on_related_model=’target_addon’, 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=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’activity.AddonLog’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’reviewerflags’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.AddonReviewerFlags’, field_name_on_related_model=’addon’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’regional_restrictions’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.AddonRegionalRestrictions’, field_name_on_related_model=’addon’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’migrated_from_lwt’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.MigratedLWT’, field_name_on_related_model=’static_theme’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.AddonCategory’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.AddonUser’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.AddonUserPendingConfirmation’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.AddonApprovalsCounter’, field_name_on_related_model=’addon’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’previews’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Preview’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.FrozenAddon’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.AddonGUID’, field_name_on_related_model=’addon’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.AddonBrowserMapping’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’content_deleted_on_force_disable’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.DisabledAddonContent’, field_name_on_related_model=’addon’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’collections’, field_type=’ManyToManyRel’, field_db_type=’through bandwagon.CollectionAddon’, related_model=’bandwagon.Collection’, field_name_on_related_model=’addons’, field_type_on_related_model=’ManyToManyField’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’bandwagon.CollectionAddon’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’devhub.RssKey’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’discovery.DiscoveryItem’, field_name_on_related_model=’addon’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’files.FileUpload’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’hero.PrimaryHero’, field_name_on_related_model=’addon’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’promotedaddon’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’promoted.PromotedAddon’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’_ratings’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’ratings.Rating’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’ratings.RatingAggregate’, field_name_on_related_model=’addon’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’reviewers.ReviewerSubscription’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’reviewers.Whiteboard’, field_name_on_related_model=’addon’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’tags’, field_type=’ManyToManyRel’, field_db_type=’through tags.AddonTag’, related_model=’tags.Tag’, field_name_on_related_model=’addons’, field_type_on_related_model=’ManyToManyField’), FieldReverseRelation(name=’addon_tags’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’tags.AddonTag’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’BannedUserContent_addons+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’users.BannedUserContent_addons’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’addon_set’, field_type=’ManyToManyRel’, field_db_type=’through users.BannedUserContent_addons’, related_model=’users.BannedUserContent’, field_name_on_related_model=’addons’, field_type_on_related_model=’ManyToManyField’), FieldReverseRelation(name=’versions’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’versions.Version’, field_name_on_related_model=’addon’, field_type_on_related_model=’ForeignKey’)]
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_addons |
addon |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
ratings.Rating |
addon |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
abuse.CinderJob |
target_addon |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
activity.AddonLog |
addon |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
addons.AddonCategory |
addon |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
addons.AddonUser |
addon |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
addons.AddonUserPendingConfirmation |
addon |
ForeignKey |
|
OneToOneRel |
integer UNSIGNED |
addons.AddonApprovalsCounter |
addon |
OneToOneField |
|
ManyToOneRel |
integer UNSIGNED |
addons.FrozenAddon |
addon |
ForeignKey |
|
OneToOneRel |
integer UNSIGNED |
addons.AddonGUID |
addon |
OneToOneField |
|
ManyToOneRel |
integer UNSIGNED |
addons.AddonBrowserMapping |
addon |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
bandwagon.CollectionAddon |
addon |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
devhub.RssKey |
addon |
ForeignKey |
|
OneToOneRel |
integer UNSIGNED |
discovery.DiscoveryItem |
addon |
OneToOneField |
|
ManyToOneRel |
integer UNSIGNED |
files.FileUpload |
addon |
ForeignKey |
|
OneToOneRel |
integer UNSIGNED |
hero.PrimaryHero |
addon |
OneToOneField |
|
OneToOneRel |
integer UNSIGNED |
ratings.RatingAggregate |
addon |
OneToOneField |
|
ManyToOneRel |
integer UNSIGNED |
reviewers.ReviewerSubscription |
addon |
ForeignKey |
|
OneToOneRel |
integer UNSIGNED |
reviewers.Whiteboard |
addon |
OneToOneField |
|
ManyToManyRel |
through users.BannedUserContent_addons |
users.BannedUserContent |
addons |
ManyToManyField |
|
ManyToOneRel |
integer UNSIGNED |
tags.AddonTag |
addon |
ForeignKey |
|
ManyToManyRel |
through bandwagon.CollectionAddon |
bandwagon.Collection |
addons |
ManyToManyField |
|
OneToOneRel |
integer UNSIGNED |
addons.DisabledAddonContent |
addon |
OneToOneField |
|
ManyToOneRel |
integer UNSIGNED |
abuse.ContentDecision |
addon |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
addons.MigratedLWT |
static_theme |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
addons.Preview |
addon |
ForeignKey |
|
ManyToOneRel |
integer UNSIGNED |
promoted.PromotedAddon |
addon |
ForeignKey |
|
OneToOneRel |
integer UNSIGNED |
addons.AddonRegionalRestrictions |
addon |
OneToOneField |
|
OneToOneRel |
integer UNSIGNED |
addons.AddonReviewerFlags |
addon |
OneToOneField |
|
ManyToManyRel |
through tags.AddonTag |
tags.Tag |
addons |
ManyToManyField |
|
ManyToOneRel |
integer UNSIGNED |
versions.Version |
addon |
ForeignKey |
Methods
Other Methods
Method Name |
Signature |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Private Methods
Method Name |
Signature |
---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Custom Managers
default
Class: AddonManager
*Base for all managers in AMO.
Returns BaseQuerySets.
If a model has translated fields, they’ll be attached through a transform function.*
Custom Methods
get_base_extensions_queue_with_non_disabled_versions(self, *q_filters, admin_reviewer=False)
Return base queryset for all queues that look at extensions with non disabled versions - typically scanners queues, where anything could be flagged, approved or waiting for review.
get_content_review_queue(self, admin_reviewer=False)
Return a queryset of Addon objects that need content review.
get_mad_queue(self, admin_reviewer=False)
Return a queryset of Addon objects that contain unlisted versions or had their current listed version flagged by MAD.
get_pending_rejection_queue(self, admin_reviewer=False)
get_queryset_for_pending_queues(self, *, admin_reviewer=False, theme_review=False, show_temporarily_delayed=True, show_only_upcoming=False, due_date_reasons_choices=None)
id_or_slug(self, val)
Get add-ons by id or slug.
not_disabled_by_mozilla(self)
Get all add-ons not disabled by Mozilla.
public(self)
Get public add-ons only
transform(self, fn)
valid(self)
Get valid, enabled add-ons only
Custom QuerySet
Class: AddonQuerySet
Represent a lazy database lookup for a set of objects.
Custom Methods
id_or_slug(self, val)
Get add-ons by id or slug.
no_transforms(self)
not_disabled_by_mozilla(self)
Get all add-ons not disabled by Mozilla.
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)
public(self)
Get approved add-ons only
transform(self, fn)
valid(self)
Get valid, enabled add-ons only
valid_q(self, statuses)
*Return a Q object that selects a valid Addon with the given statuses.
An add-on is valid if not disabled and has a current version.*
objects
Class: AddonManager
*Base for all managers in AMO.
Returns BaseQuerySets.
If a model has translated fields, they’ll be attached through a transform function.*
Custom Methods
get_base_extensions_queue_with_non_disabled_versions(self, *q_filters, admin_reviewer=False)
Return base queryset for all queues that look at extensions with non disabled versions - typically scanners queues, where anything could be flagged, approved or waiting for review.
get_base_queryset_for_queue(self, admin_reviewer=False, content_review=False, theme_review=False, select_related_fields_for_listed=True)
get_content_review_queue(self, admin_reviewer=False)
Return a queryset of Addon objects that need content review.
get_mad_queue(self, admin_reviewer=False)
Return a queryset of Addon objects that contain unlisted versions or had their current listed version flagged by MAD.
get_pending_rejection_queue(self, admin_reviewer=False)
get_queryset_for_pending_queues(self, *, admin_reviewer=False, theme_review=False, show_temporarily_delayed=True, show_only_upcoming=False, due_date_reasons_choices=None)
id_or_slug(self, val)
Get add-ons by id or slug.
not_disabled_by_mozilla(self)
Get all add-ons not disabled by Mozilla.
public(self)
Get public add-ons only
transform(self, fn)
valid(self)
Get valid, enabled add-ons only
Custom QuerySet
Class: AddonQuerySet
Represent a lazy database lookup for a set of objects.
Custom Methods
id_or_slug(self, val)
Get add-ons by id or slug.
no_transforms(self)
not_disabled_by_mozilla(self)
Get all add-ons not disabled by Mozilla.
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)
public(self)
Get approved add-ons only
transform(self, fn)
valid(self)
Get valid, enabled add-ons only
valid_q(self, statuses)
*Return a Q object that selects a valid Addon with the given statuses.
An add-on is valid if not disabled and has a current version.*
unfiltered
Class: AddonManager
*Base for all managers in AMO.
Returns BaseQuerySets.
If a model has translated fields, they’ll be attached through a transform function.*
Custom Methods
get_base_extensions_queue_with_non_disabled_versions(self, *q_filters, admin_reviewer=False)
Return base queryset for all queues that look at extensions with non disabled versions - typically scanners queues, where anything could be flagged, approved or waiting for review.
get_base_queryset_for_queue(self, admin_reviewer=False, content_review=False, theme_review=False, select_related_fields_for_listed=True)
get_content_review_queue(self, admin_reviewer=False)
Return a queryset of Addon objects that need content review.
get_mad_queue(self, admin_reviewer=False)
Return a queryset of Addon objects that contain unlisted versions or had their current listed version flagged by MAD.
get_pending_rejection_queue(self, admin_reviewer=False)
get_queryset_for_pending_queues(self, *, admin_reviewer=False, theme_review=False, show_temporarily_delayed=True, show_only_upcoming=False, due_date_reasons_choices=None)
id_or_slug(self, val)
Get add-ons by id or slug.
not_disabled_by_mozilla(self)
Get all add-ons not disabled by Mozilla.
public(self)
Get public add-ons only
transform(self, fn)
valid(self)
Get valid, enabled add-ons only
Custom QuerySet
Class: AddonQuerySet
Represent a lazy database lookup for a set of objects.
Custom Methods
id_or_slug(self, val)
Get add-ons by id or slug.
no_transforms(self)
not_disabled_by_mozilla(self)
Get all add-ons not disabled by Mozilla.
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)
public(self)
Get approved add-ons only
transform(self, fn)
valid(self)
Get valid, enabled add-ons only
valid_q(self, statuses)
*Return a Q object that selects a valid Addon with the given statuses.
An add-on is valid if not disabled and has a current version.*
!!! THIS DOCUMENT WAS AUTOGENERATED ON 2025-07-09 !!!