abuse.AbuseReport

Model Info

Key

Value

Model Name

AbuseReport

Verbose Name

abuse report

Verbose Name Plural

abuse reports

Docstring

AbuseReport(id, created, modified, reporter, reporter_email, reporter_name, country_code, guid, user, rating, collection, message, client_id, addon_name, addon_summary, addon_version, addon_signature, application, application_version, application_locale, operating_system, operating_system_version, install_date, reason, addon_install_origin, addon_install_method, addon_install_source, addon_install_source_url, report_entry_point, location, cinder_job, illegal_category, illegal_subcategory)

Is Abstract

False

Is Proxy

False

Is Managed

True

Ordering

[]

Permissions

[]

Default Permissions

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

Indexes

[<Index: fields=[‘created’] name=’abuse_reports_created_idx’>, <Index: fields=[‘guid’] name=’guid_idx’>]

Constraints

[<CheckConstraint: check=(OR: (AND: (NOT (AND: (‘guid’, ‘’))), (‘collection__isnull’, True), (‘guid__isnull’, False), (‘rating__isnull’, True), (‘user__isnull’, True)), (AND: (‘collection__isnull’, True), (‘guid__isnull’, True), (‘rating__isnull’, True), (‘user__isnull’, False)), (AND: (‘collection__isnull’, True), (‘guid__isnull’, True), (‘rating__isnull’, False), (‘user__isnull’, True)), (AND: (‘collection__isnull’, False), (‘guid__isnull’, True), (‘rating__isnull’, True), (‘user__isnull’, True))) name=’just_one_of_guid_user_rating_collection_must_be_set’>]

Database Table

abuse_reports

Base Manager

None

Default Manager

None

File

/data/olympia/src/olympia/abuse/models.py

Starting Line Number

466

Method Resolution Order

(<class ‘olympia.abuse.models.AbuseReport’>, <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_install_method

PositiveSmallIntegerField

addon_install_method

smallint UNSIGNED

addon install method

addon_install_origin

CharField

addon_install_origin

varchar(255)

addon install origin

addon_install_source

PositiveSmallIntegerField

addon_install_source

smallint UNSIGNED

addon install source

addon_install_source_url

CharField

addon_install_source_url

varchar(255)

addon install source url

addon_name

CharField

addon_name

varchar(255)

addon name

addon_signature

PositiveSmallIntegerField

addon_signature

smallint UNSIGNED

addon signature

addon_summary

CharField

addon_summary

varchar(255)

addon summary

addon_version

CharField

addon_version

varchar(255)

addon version

application

PositiveSmallIntegerField

application

smallint UNSIGNED

application

application_locale

CharField

application_locale

varchar(255)

application locale

application_version

CharField

application_version

varchar(255)

application version

cinder_job

ForeignKey

cinder_job_id

integer

cinder job

cinderappeal

OneToOneRel

integer

client_id

CharField

client_id

varchar(64)

client id

collection

ForeignKey

collection_id

integer UNSIGNED

collection

country_code

CharField

country_code

varchar(2)

country code

created

DateTimeField

created

datetime(6)

created

guid

CharField

guid

varchar(255)

guid

id (pk)

AutoField

id

integer AUTO_INCREMENT

ID

illegal_category

PositiveSmallIntegerField

illegal_category

smallint UNSIGNED

illegal category

illegal_subcategory

PositiveSmallIntegerField

illegal_subcategory

smallint UNSIGNED

illegal subcategory

install_date

DateTimeField

install_date

datetime(6)

install date

location

PositiveSmallIntegerField

location

smallint UNSIGNED

location

message

TextField

message

longtext

message

modified

DateTimeField

modified

datetime(6)

modified

operating_system

CharField

operating_system

varchar(255)

operating system

operating_system_version

CharField

operating_system_version

varchar(255)

operating system version

rating

ForeignKey

rating_id

integer UNSIGNED

rating

reason

PositiveSmallIntegerField

reason

smallint UNSIGNED

reason

report_entry_point

PositiveSmallIntegerField

report_entry_point

smallint UNSIGNED

report entry point

reporter

ForeignKey

reporter_id

integer

reporter

reporter_email

CharField

reporter_email

varchar(255)

reporter email

reporter_name

CharField

reporter_name

varchar(255)

reporter name

user

ForeignKey

user_id

integer

user

Relations

Field Name

Field Type

Database Column

Database Type

Related Model

Related Name

cinder_job

ForeignKey

cinder_job_id

integer

abuse.CinderJob

abusereport_set

collection

ForeignKey

collection_id

integer UNSIGNED

bandwagon.Collection

abuse_reports

rating

ForeignKey

rating_id

integer UNSIGNED

ratings.Rating

abuse_reports

reporter

ForeignKey

reporter_id

integer

users.UserProfile

abuse_reported

user

ForeignKey

user_id

integer

users.UserProfile

abuse_reports

fields_reverse_relation=[FieldReverseRelation(name=’abusereport_set’, field_type=’OneToOneRel’, field_db_type=’integer’, related_model=’abuse.CinderAppeal’, field_name_on_related_model=’reporter_report’, 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

abusereport_set

OneToOneRel

integer

abuse.CinderAppeal

reporter_report

OneToOneField

Methods

Other Methods

Method Name

Signature

get_addon_install_method_display

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

get_addon_install_source_display

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

get_addon_signature_display

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

get_admin_absolute_url

(self)

get_admin_url_path

(self)

get_application_display

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

get_illegal_category_display

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

get_illegal_subcategory_display

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

get_location_display

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

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_reason_display

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

get_report_entry_point_display

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

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: AbuseReportManager

*Base for all managers in AMO.

Returns BaseQuerySets.

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

Custom Methods

for_addon(self, addon)
transform(self, fn)

Custom QuerySet

Class: AbuseReportQuerySet

Represent a lazy database lookup for a set of objects.

Custom Methods
for_addon(self, addon)
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: AbuseReportManager

*Base for all managers in AMO.

Returns BaseQuerySets.

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

Custom Methods

for_addon(self, addon)
transform(self, fn)

Custom QuerySet

Class: AbuseReportQuerySet

Represent a lazy database lookup for a set of objects.

Custom Methods
for_addon(self, addon)
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 !!!