blocklist.Block

Model Info

Key

Value

Model Name

Block

Verbose Name

block

Verbose Name Plural

blocks

Docstring

Block(id, created, modified, guid, url, reason, updated_by, average_daily_users_snapshot)

Is Abstract

False

Is Proxy

False

Is Managed

True

Ordering

[]

Permissions

[]

Default Permissions

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

Indexes

[]

Constraints

[]

Database Table

blocklist_block

Base Manager

objects

Default Manager

None

File

/data/olympia/src/olympia/blocklist/models.py

Starting Line Number

30

Method Resolution Order

(<class ‘olympia.blocklist.models.Block’>, <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

Block_submission+

ManyToOneRel

integer

average_daily_users_snapshot

IntegerField

average_daily_users_snapshot

integer

average daily users snapshot

blocklog

ManyToOneRel

integer

blockversion

ManyToOneRel

integer

created

DateTimeField

created

datetime(6)

created

guid

CharField

guid

varchar(255)

guid

id (pk)

AutoField

id

integer AUTO_INCREMENT

ID

modified

DateTimeField

modified

datetime(6)

modified

reason

TextField

reason

longtext

reason

submission

ManyToManyField

submission

through blocklist.Block_submission

submission

updated_by

ForeignKey

updated_by_id

integer

updated by

url

CharField

url

varchar(255)

url

Relations

Field Name

Field Type

Database Column

Database Type

Related Model

Related Name

submission

ManyToManyField

submission

through blocklist.Block_submission

blocklist.BlocklistSubmission

block_set

updated_by

ForeignKey

updated_by_id

integer

users.UserProfile

block_set

fields_reverse_relation=[FieldReverseRelation(name=’block_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’activity.BlockLog’, field_name_on_related_model=’block’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’Block_submission+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’blocklist.Block_submission’, field_name_on_related_model=’block’, field_type_on_related_model=’ForeignKey’), FieldReverseRelation(name=’block_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’blocklist.BlockVersion’, field_name_on_related_model=’block’, 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

Block_submission+ (no reverse relation allowed)

ManyToOneRel

integer

blocklist.Block_submission

block

ForeignKey

block_set

ManyToOneRel

integer

activity.BlockLog

block

ForeignKey

block_set

ManyToOneRel

integer

blocklist.BlockVersion

block

ForeignKey

Methods

Other Methods

Method Name

Signature

get_addons_for_guids_qs

(guids)

get_admin_absolute_url

(self)

get_admin_url_path

(self)

get_blocks_from_guids

(guids)

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

()

has_hard_blocked_versions

(self)

has_soft_blocked_versions

(self)

preload_addon_versions

(blocks)

reload

(self)

review_listed_link

(self)

review_unlisted_link

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