translations.PureTranslation

Model Info

Key

Value

Model Name

PureTranslation

Verbose Name

pure translation

Verbose Name Plural

pure translations

Docstring

Run the string through bleach to get version with escaped HTML.

Is Abstract

False

Is Proxy

True

Is Managed

True

Ordering

[]

Permissions

[]

Default Permissions

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

Indexes

[]

Constraints

[]

Database Table

translations

Base Manager

None

Default Manager

None

File

/data/olympia/src/olympia/translations/models.py

Starting Line Number

168

Method Resolution Order

(<class ‘olympia.translations.models.PureTranslation’>, <class ‘olympia.translations.models.Translation’>, <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_description_set+

ManyToOneRel

integer UNSIGNED

Addon_developer_comments_set+

ManyToOneRel

integer UNSIGNED

Addon_eula_set+

ManyToOneRel

integer UNSIGNED

Addon_homepage_set+

ManyToOneRel

integer UNSIGNED

Addon_name_set+

ManyToOneRel

integer UNSIGNED

Addon_privacy_policy_set+

ManyToOneRel

integer UNSIGNED

Addon_summary_set+

ManyToOneRel

integer UNSIGNED

Addon_support_email_set+

ManyToOneRel

integer UNSIGNED

Addon_support_url_set+

ManyToOneRel

integer UNSIGNED

CollectionAddon_comments_set+

ManyToOneRel

integer UNSIGNED

Collection_description_set+

ManyToOneRel

integer UNSIGNED

Collection_name_set+

ManyToOneRel

integer UNSIGNED

License_name_set+

ManyToOneRel

integer UNSIGNED

License_text_set+

ManyToOneRel

integer UNSIGNED

Preview_caption_set+

ManyToOneRel

integer UNSIGNED

Version_release_notes_set+

ManyToOneRel

integer UNSIGNED

autoid (pk)

PositiveAutoField

autoid

integer UNSIGNED AUTO_INCREMENT

autoid

created

DateTimeField

created

datetime(6)

created

id

PositiveIntegerField

id

integer UNSIGNED

id

locale

CharField

locale

varchar(10)

locale

localized_string

TextField

localized_string

longtext

localized string

localized_string_clean

TextField

localized_string_clean

longtext

localized string clean

modified

DateTimeField

modified

datetime(6)

modified

fields_reverse_relation=[FieldReverseRelation(name=’Addon_name_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Addon’, field_name_on_related_model=’name’, field_type_on_related_model=’TranslatedField’), FieldReverseRelation(name=’Addon_homepage_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Addon’, field_name_on_related_model=’homepage’, field_type_on_related_model=’TranslatedField’), FieldReverseRelation(name=’Addon_support_email_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Addon’, field_name_on_related_model=’support_email’, field_type_on_related_model=’TranslatedField’), FieldReverseRelation(name=’Addon_support_url_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Addon’, field_name_on_related_model=’support_url’, field_type_on_related_model=’TranslatedField’), FieldReverseRelation(name=’Addon_description_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Addon’, field_name_on_related_model=’description’, field_type_on_related_model=’PurifiedMarkdownField’), FieldReverseRelation(name=’Addon_summary_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Addon’, field_name_on_related_model=’summary’, field_type_on_related_model=’NoURLsField’), FieldReverseRelation(name=’Addon_developer_comments_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Addon’, field_name_on_related_model=’developer_comments’, field_type_on_related_model=’PurifiedMarkdownField’), FieldReverseRelation(name=’Addon_eula_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Addon’, field_name_on_related_model=’eula’, field_type_on_related_model=’PurifiedMarkdownField’), FieldReverseRelation(name=’Addon_privacy_policy_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Addon’, field_name_on_related_model=’privacy_policy’, field_type_on_related_model=’PurifiedMarkdownField’), FieldReverseRelation(name=’Preview_caption_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’addons.Preview’, field_name_on_related_model=’caption’, field_type_on_related_model=’TranslatedField’), FieldReverseRelation(name=’Collection_name_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’bandwagon.Collection’, field_name_on_related_model=’name’, field_type_on_related_model=’TranslatedField’), FieldReverseRelation(name=’Collection_description_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’bandwagon.Collection’, field_name_on_related_model=’description’, field_type_on_related_model=’NoURLsField’), FieldReverseRelation(name=’CollectionAddon_comments_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’bandwagon.CollectionAddon’, field_name_on_related_model=’comments’, field_type_on_related_model=’LinkifiedField’), FieldReverseRelation(name=’Version_release_notes_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’versions.Version’, field_name_on_related_model=’release_notes’, field_type_on_related_model=’PurifiedMarkdownField’), FieldReverseRelation(name=’License_name_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’versions.License’, field_name_on_related_model=’name’, field_type_on_related_model=’TranslatedField’), FieldReverseRelation(name=’License_text_set+ (no reverse relation allowed)’, field_type=’ManyToOneRel’, field_db_type=’integer UNSIGNED’, related_model=’versions.License’, field_name_on_related_model=’text’, field_type_on_related_model=’LinkifiedField’)]

Reverse Relations

Field Name

Field Type

Database Type

Related Model

Field Name on Related Model

Field Type on Related Model

Addon_description_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

addons.Addon

description

PurifiedMarkdownField

Addon_developer_comments_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

addons.Addon

developer_comments

PurifiedMarkdownField

Addon_eula_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

addons.Addon

eula

PurifiedMarkdownField

Addon_homepage_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

addons.Addon

homepage

TranslatedField

Addon_name_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

addons.Addon

name

TranslatedField

Addon_privacy_policy_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

addons.Addon

privacy_policy

PurifiedMarkdownField

Addon_summary_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

addons.Addon

summary

NoURLsField

Addon_support_email_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

addons.Addon

support_email

TranslatedField

Addon_support_url_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

addons.Addon

support_url

TranslatedField

CollectionAddon_comments_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

bandwagon.CollectionAddon

comments

LinkifiedField

Collection_description_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

bandwagon.Collection

description

NoURLsField

Collection_name_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

bandwagon.Collection

name

TranslatedField

License_name_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

versions.License

name

TranslatedField

License_text_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

versions.License

text

LinkifiedField

Preview_caption_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

addons.Preview

caption

TranslatedField

Version_release_notes_set+ (no reverse relation allowed)

ManyToOneRel

integer UNSIGNED

versions.Version

release_notes

PurifiedMarkdownField

Methods

Other Methods

Method Name

Signature

clean_localized_string

(self)

get_admin_absolute_url

(self)

get_admin_url_path

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

()

new

(string, locale, id=None)

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

*Base for all managers in AMO.

Returns BaseQuerySets.

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

Custom Methods

remove_for(self, obj, locale)

Remove a locale for the given object.

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

*Base for all managers in AMO.

Returns BaseQuerySets.

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

Custom Methods

remove_for(self, obj, locale)

Remove a locale for the given object.

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