2016-03-10 2 views
1

При внесении изменений в файл fields.py, я не получаю никаких предупреждений, но приложение не работает.RemovedInDjango110 Предупреждение: SubfieldBase устарел

реж: /home/ammy/aamp/lib/python2.7/site-packages/geoposition/fields.py

Код сниппета:

from __future__ import unicode_literals 

from django.db import models 
from django.utils.six import with_metaclass 
from django.utils.translation import ugettext_lazy as _ 
from django.utils.encoding import smart_text 

from . import Geoposition 
from .forms import GeopositionField as GeopositionFormField 


class GeopositionField(with_metaclass(models.SubfieldBase, models.Field)): 
    description = _("A geoposition (latitude and longitude)") 

    def __init__(self, *args, **kwargs): 
     kwargs['max_length'] = 42 
     super(GeopositionField, self).__init__(*args, **kwargs) 

    def get_internal_type(self): 
     return 'CharField' 

    def to_python(self, value): 
     if not value or value == 'None': 
      return None 
     if isinstance(value, Geoposition): 
      return value 
     if isinstance(value, list): 
      return Geoposition(value[0], value[1]) 

     # default case is string 
     value_parts = value.rsplit(',') 
     try: 
      latitude = value_parts[0] 
     except IndexError: 
      latitude = '0.0' 
     try: 
      longitude = value_parts[1] 
     except IndexError: 
      longitude = '0.0' 

     return Geoposition(latitude, longitude) 

    def get_prep_value(self, value): 
     return str(value) 

    def value_to_string(self, obj): 
     value = self._get_val_from_obj(obj) 
     return smart_text(value) 

    def formfield(self, **kwargs): 
     defaults = { 
      'form_class': GeopositionFormField 
     } 
     defaults.update(kwargs) 
     return super(GeopositionField, self).formfield(**defaults) 

Ошибка:

RemovedInDjango110 Предупреждение: SubfieldBase устарел. Вместо этого используйте Field.from_db_value. возвращать мета (имя, базы, г)

+1

обновите свой пост простым названием – Prasad

ответ