Skip to content

Commit

Permalink
Fix bug in django field.
Browse files Browse the repository at this point in the history
  • Loading branch information
Warren Smith committed Nov 28, 2016
1 parent fc710a6 commit d0098e4
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 7 deletions.
2 changes: 1 addition & 1 deletion setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

from setuptools import setup, find_packages

__version__ = "0.1.3"
__version__ = "0.1.4"


def file_read(filename):
Expand Down
21 changes: 15 additions & 6 deletions staticmodel/django/fields.py
Original file line number Diff line number Diff line change
Expand Up @@ -61,20 +61,29 @@ def to_python(self, db_value):
return self._static_model.members.get(
**{self._value_field_name: super_value})

def from_db_value(self, value, expression, connection, context):
return self._static_model.members.get(**{self._value_field_name: value})

class StaticModelCharField(
six.with_metaclass(models.SubfieldBase, StaticModelFieldMixin,
models.CharField)):

class StaticModelCharField(StaticModelFieldMixin, models.CharField):
def _validate_member_value(self, member, value):
if not isinstance(value, six.string_types):
raise ValueError('Field {!r} of member {!r} must be a string.'.format(
self._value_field_name, member._member_name))

def from_db_value(self, value, expression, connection, context):
value = str(value)
return super(StaticModelCharField, self).from_db_value(
value, expression, connection, context)


class StaticModelIntegerField(
six.with_metaclass(models.SubfieldBase, StaticModelFieldMixin,
models.IntegerField)):
class StaticModelIntegerField(StaticModelFieldMixin, models.IntegerField):
def _validate_member_value(self, member, value):
if not isinstance(value, six.integer_types):
raise ValueError('Field {!r} of member {!r} must be an integer.'.format(
self._value_field_name, member._member_name))

def from_db_value(self, value, expression, connection, context):
value = int(value)
return super(StaticModelIntegerField, self).from_db_value(
value, expression, connection, context)

0 comments on commit d0098e4

Please sign in to comment.