discovery.HomepageShelves

Model Info

Key

Value

Model Name

HomepageShelves

Verbose Name

homepage shelves

Verbose Name Plural

homepage shelves

Docstring

HomepageShelves(id, created, modified, title, endpoint, criteria, footer_text, footer_pathname, addon_count, addon_type, enabled, position)

Is Abstract

False

Is Proxy

True

Is Managed

True

Ordering

[]

Permissions

[]

Default Permissions

(‘add’, ‘change’, ‘delete’, ‘view’)

Indexes

[]

Constraints

[]

Database Table

shelves_shelf

Base Manager

None

Default Manager

None

File

/data/olympia/src/olympia/discovery/admin.py

Starting Line Number

176

Method Resolution Order

(<class ‘olympia.discovery.admin.HomepageShelves’>, <class ‘olympia.shelves.models.Shelf’>, <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

addon_count

PositiveSmallIntegerField

addon_count

smallint UNSIGNED

addon count

addon_type

PositiveIntegerField

addontype_id

integer UNSIGNED

addon type

created

DateTimeField

created

datetime(6)

created

criteria

CharField

criteria

varchar(200)

criteria

enabled

BooleanField

enabled

bool

enabled

endpoint

CharField

shelf_type

varchar(20)

endpoint

footer_pathname

CharField

footer_pathname

varchar(255)

footer pathname

footer_text

CharField

footer_text

varchar(70)

footer text

id (pk)

AutoField

id

integer AUTO_INCREMENT

ID

modified

DateTimeField

modified

datetime(6)

modified

position

PositiveIntegerField

position

integer UNSIGNED

position

title

CharField

title

varchar(70)

title

fields_reverse_relation=[]

Methods

Other Methods

Method Name

Signature

get_addon_type_display

(self, *, field=<django.db.models.fields.PositiveIntegerField: addon_type>)

get_admin_absolute_url

(self)

get_admin_url_path

(self)

get_count

(self)

get_endpoint_display

(self, *, field=<django.db.models.fields.CharField: endpoint>)

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_param_dict

(self)

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

()

reload

(self)

serializable_reference

(self)

update

(self, **kw)

Private Methods

Method Name

Signature

_get_field_value_map

(self, meta, exclude=None)

Custom Managers

default

Class: ManagerBase

*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: BaseQuerySet

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.*

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)

objects

Class: ManagerBase

*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: BaseQuerySet

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.*

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)

!!! THIS DOCUMENT WAS AUTOGENERATED ON 2025-10-07 !!!