discovery.DiscoveryAddon
Model Info
Key |
Value |
---|---|
Model Name |
DiscoveryAddon |
Verbose Name |
discovery addon |
Verbose Name Plural |
discovery addons |
Docstring |
DiscoveryAddon(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 |
True |
Is Managed |
True |
Ordering |
[] |
Permissions |
[] |
Default Permissions |
(‘add’, ‘change’, ‘delete’, ‘view’) |
Indexes |
[] |
Constraints |
[] |
Database Table |
addons |
Base Manager |
None |
Default Manager |
None |
File |
/data/olympia/src/olympia/discovery/admin.py |
Starting Line Number |
182 |
Method Resolution Order |
(<class ‘olympia.discovery.admin.DiscoveryAddon’>, <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 |
||
|
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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_set’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.AddonListingInfo’, 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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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=’discoveryaddon_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 |
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 |
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 |
|
OneToOneRel |
integer UNSIGNED |
addons.AddonListingInfo |
addon |
OneToOneField |
|
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 |
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
get_with_primary_fallback(self, *args, **kwargs)
*Like get(), but if using a non-default database and DoesNotExist is raised, another attempt is made using the default database instead.
Intended to be used in places where replication lag could cause the object not to exist for a brief moment and forcing use of primary db at all times is undesirable.*
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
get_with_primary_fallback(self, *args, **kwargs)
*Like get(), but if using a non-default database and DoesNotExist is raised, another attempt is made using the default database instead.
Intended to be used in places where replication lag could cause the object not to exist for a brief moment and forcing use of primary db at all times is undesirable.*
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
get_with_primary_fallback(self, *args, **kwargs)
*Like get(), but if using a non-default database and DoesNotExist is raised, another attempt is made using the default database instead.
Intended to be used in places where replication lag could cause the object not to exist for a brief moment and forcing use of primary db at all times is undesirable.*
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-10-07 !!!