Removed usage of deprecated SubfieldBase metaclass

This commit is contained in:
Raphael Michel
2015-12-12 23:18:00 +01:00
parent 85f580ec5b
commit 9df77c6c27

View File

@@ -4,7 +4,7 @@ import json
from django import forms from django import forms
from django.conf import settings from django.conf import settings
from django.core.serializers.json import DjangoJSONEncoder from django.core.serializers.json import DjangoJSONEncoder
from django.db.models import Model, QuerySet, SubfieldBase, TextField from django.db.models import Model, QuerySet, TextField
from django.utils import translation from django.utils import translation
from django.utils.safestring import mark_safe from django.utils.safestring import mark_safe
from typing import Dict, List from typing import Dict, List
@@ -214,13 +214,16 @@ class I18nFieldMixin:
def get_prep_lookup(self, lookup_type, value): # NOQA def get_prep_lookup(self, lookup_type, value): # NOQA
raise TypeError('Lookups on i18n string currently not supported.') raise TypeError('Lookups on i18n string currently not supported.')
def from_db_value(self, value, expression, connection, context):
return LazyI18nString(value)
def formfield(self, **kwargs): def formfield(self, **kwargs):
defaults = {'form_class': self.form_class, 'widget': self.widget} defaults = {'form_class': self.form_class, 'widget': self.widget}
defaults.update(kwargs) defaults.update(kwargs)
return super().formfield(**defaults) return super().formfield(**defaults)
class I18nCharField(I18nFieldMixin, TextField, metaclass=SubfieldBase): class I18nCharField(I18nFieldMixin, TextField):
""" """
A CharField which takes internationalized data. Internally, a TextField dabase A CharField which takes internationalized data. Internally, a TextField dabase
field is used to store JSON. If you interact with this field, you will work field is used to store JSON. If you interact with this field, you will work
@@ -229,7 +232,7 @@ class I18nCharField(I18nFieldMixin, TextField, metaclass=SubfieldBase):
widget = I18nTextInput widget = I18nTextInput
class I18nTextField(I18nFieldMixin, TextField, metaclass=SubfieldBase): class I18nTextField(I18nFieldMixin, TextField):
""" """
Like I18nCharField, but for TextFields. Like I18nCharField, but for TextFields.
""" """