scanners.ScannerResult

Model Info

Key

Value

Model Name

ScannerResult

Verbose Name

scanner result

Verbose Name Plural

scanner results

Docstring

ScannerResult(id, created, modified, results, scanner, version, upload, score, model_version, has_matches, state)

Is Abstract

False

Is Proxy

False

Is Managed

True

Ordering

[]

Permissions

[]

Default Permissions

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

Indexes

[<Index: fields=[‘state’] name=’scanners_re_state_2893a0_idx’>, <Index: fields=[‘has_matches’] name=’scanners_re_has_mat_d3421d_idx’>]

Constraints

[<UniqueConstraint: fields=(‘upload’, ‘scanner’, ‘version’) name=’scanners_results_upload_id_scanner_version_id_ad9eb8a6_uniq’>]

Database Table

scanners_results

Base Manager

objects

Default Manager

None

File

/data/olympia/src/olympia/scanners/models.py

Starting Line Number

221

Method Resolution Order

(<class ‘olympia.scanners.models.ScannerResult’>, <class ‘olympia.scanners.models.AbstractScannerResult’>, <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

created

DateTimeField

created

datetime(6)

created

has_matches

BooleanField

has_matches

bool

has matches

id (pk)

AutoField

id

integer AUTO_INCREMENT

ID

matched_rules

ManyToManyField

matched_rules

through scanners.ScannerMatch

matched rules

model_version

CharField

model_version

varchar(30)

model version

modified

DateTimeField

modified

datetime(6)

modified

results

JSONField

results

json

results

scanner

PositiveSmallIntegerField

scanner

smallint UNSIGNED

scanner

scannermatch

ManyToOneRel

integer

score

DecimalField

score

numeric(6, 5)

score

state

PositiveSmallIntegerField

state

smallint UNSIGNED

state

upload

ForeignKey

upload_id

integer

upload

version

ForeignKey

version_id

integer UNSIGNED

version

Relations

Field Name

Field Type

Database Column

Database Type

Related Model

Related Name

matched_rules

ManyToManyField

matched_rules

through scanners.ScannerMatch

scanners.ScannerRule

results

upload

ForeignKey

upload_id

integer

files.FileUpload

scannerresults

version

ForeignKey

version_id

integer UNSIGNED

versions.Version

scannerresults

fields_reverse_relation=[FieldReverseRelation(name=’scannerresult_set’, field_type=’ManyToOneRel’, field_db_type=’integer’, related_model=’scanners.ScannerMatch’, field_name_on_related_model=’result’, 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

scannerresult_set

ManyToOneRel

integer

scanners.ScannerMatch

result

ForeignKey

Methods

Other Methods

Method Name

Signature

add_yara_result

(self, rule, tags=None, meta=None)

can_report_feedback

(self)

can_revert_feedback

(self)

extract_rule_names

(self)

get_admin_absolute_url

(self)

get_admin_url_path

(self)

get_files_and_data_by_matched_rules

(self)

get_git_repository

(self)

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_pretty_results

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

(self)

get_scanner_display

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

get_scanner_name

(self)

get_state_display

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

get_unfiltered_manager

()

reload

(self)

rule_model

(*args, **kwargs)

run_action

(version)

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
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
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-07-09 !!!