﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
25143	ArrayField should implement from_db_value()	Odahi		"
I'm using a custom field with the new Postgres {{{ArrayField}}}:


{{{

class Tag(object):
   def __init__(self, id):
        self.id = id

   def __unicode__(self):
        return U""Tag(%d)"" % self.id


class TagField(models.SmallIntegerField):
    # Dummy wrapper over SmallIntegerField.

   def from_db_value(self, value, expression, connection, context):
        if value is None:
            return value
        return Tag(int(value))

   def get_prep_value(self, value):
        return value
   ...

# models.py

class Recommendation(models.Model):
    tags = ArrayField(TagField(), size=3)

    def __unicode__(self):
        return self.tags
}}}


Then 


{{{
>>> Recommendation.objects.create(tags=[Tag(1), Tag(2)])
>>> Recommendation.objects.all()

[<Recommendation: [1, 2]>]  # WRONG

}}}

This is wrong because I got Integers instead of Tag objects:

{{{
[<Recommendation: [Tag(1), Tag(2)]>]  # OK
}}}

Looking at the {{{ArrayField}}} source code seems that {{{to_python()}}} is implemented but never called. I think {{{from_db_value()}}} should be also implemented.  

"	Bug	new	contrib.postgres	1.8	Normal				Unreviewed	0	0	0	0	0	0
