files.File

Model Info

Key

Value

Model Name

File

Verbose Name

file

Verbose Name Plural

files

Docstring

File(created, modified, id, version, file, size, hash, original_hash, status, datestatuschanged, strict_compatibility, approval_date, cert_serial_num, is_signed, is_experiment, is_mozilla_signed_extension, original_status, status_disabled_reason, manifest_version)

Is Abstract

False

Is Proxy

False

Is Managed

True

Ordering

[]

Permissions

[]

Default Permissions

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

Indexes

[<Index: fields=[‘created’, ‘version’] name=’created_idx’>, <Index: fields=[‘datestatuschanged’, ‘version’] name=’statuschanged_idx’>, <Index: fields=[‘status’] name=’status’>]

Constraints

[]

Database Table

files

Base Manager

objects

Default Manager

None

File

/data/olympia/src/olympia/files/models.py

Starting Line Number

87

Method Resolution Order

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

_webext_permissions

OneToOneRel

integer UNSIGNED

approval_date

DateTimeField

approval_date

datetime(6)

approval date

cert_serial_num

TextField

cert_serial_num

longtext

cert serial num

created

DateTimeField

created

datetime(6)

created

datestatuschanged

DateTimeField

datestatuschanged

datetime(6)

datestatuschanged

file

FileField

filename

varchar(255)

file

file_manifest

OneToOneRel

integer UNSIGNED

hash

CharField

hash

varchar(255)

hash

id (pk)

PositiveAutoField

id

integer UNSIGNED AUTO_INCREMENT

id

is_experiment

BooleanField

is_experiment

bool

is experiment

is_mozilla_signed_extension

BooleanField

is_mozilla_signed_extension

bool

is mozilla signed extension

is_signed

BooleanField

is_signed

bool

is signed

manifest_version

SmallIntegerField

manifest_version

smallint

manifest version

modified

DateTimeField

modified

datetime(6)

modified

original_hash

CharField

original_hash

varchar(255)

original hash

original_status

PositiveSmallIntegerField

original_status

smallint UNSIGNED

original status

size

PositiveIntegerField

size

integer UNSIGNED

size

status

PositiveSmallIntegerField

status

smallint UNSIGNED

status

status_disabled_reason

PositiveSmallIntegerField

status_disabled_reason

smallint UNSIGNED

status disabled reason

strict_compatibility

BooleanField

strict_compatibility

bool

strict compatibility

validation

OneToOneRel

integer UNSIGNED

version

OneToOneField

version_id

integer UNSIGNED

version

Relations

Field Name

Field Type

Database Column

Database Type

Related Model

Related Name

version

OneToOneField

version_id

integer UNSIGNED

versions.Version

file_set

fields_reverse_relation=[FieldReverseRelation(name=’validation’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’files.FileValidation’, field_name_on_related_model=’file’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’_webext_permissions’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’files.WebextPermission’, field_name_on_related_model=’file’, field_type_on_related_model=’OneToOneField’), FieldReverseRelation(name=’file_manifest’, field_type=’OneToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’files.FileManifest’, field_name_on_related_model=’file’, field_type_on_related_model=’OneToOneField’)]

Reverse Relations

Field Name

Field Type

Database Type

Related Model

Field Name on Related Model

Field Type on Related Model

_webext_permissions

OneToOneRel

integer UNSIGNED

files.WebextPermission

file

OneToOneField

file_manifest

OneToOneRel

integer UNSIGNED

files.FileManifest

file

OneToOneField

validation

OneToOneRel

integer UNSIGNED

files.FileValidation

file

OneToOneField

Methods

Other Methods

Method Name

Signature

from_upload

(upload, version, parsed_data=None)

generate_hash

(self)

get_admin_absolute_url

(self)

get_admin_url_path

(self)

get_manifest_version_display

(self, *, field=<django.db.models.fields.SmallIntegerField: manifest_version>)

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_review_status_display

(self)

get_status_disabled_reason_display

(self, *, field=<django.db.models.fields.PositiveSmallIntegerField: status_disabled_reason>)

get_status_display

(self, *, field=<django.db.models.fields.PositiveSmallIntegerField: status>)

get_unfiltered_manager

()

get_url_path

(self, attachment=False)

latest_xpi_url

(self, attachment=False)

on_change

(callback)

reload

(self)

serializable_reference

(self)

update

(self, **kwargs)

Private Methods

Method Name

Signature

_get_field_value_map

(self, meta, exclude=None)

_permissions_wrapper

(self, prop)

_reset_initial_attrs

(self, attrs=None)

_send_changes

(self, old_attr, new_attr_kw)

Custom Managers

default

Class: FileManager

*Base for all managers in AMO.

Returns BaseQuerySets.

If a model has translated fields, they’ll be attached through a transform function.*

Custom Methods

disabled_that_would_be_renabled_with_addon(self)
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: FileManager

*Base for all managers in AMO.

Returns BaseQuerySets.

If a model has translated fields, they’ll be attached through a transform function.*

Custom Methods

disabled_that_would_be_renabled_with_addon(self)
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 !!!