I develop an application using Flask. I use Postgres db (psycop2), SQLAlchemy and Flask-Admin for admin interface. And I got a problem and can\'t find a solution. I have man
Adding this for people like me that stumble upon this answer, it didn't work for me, but
def __str__(self):
return self.name
worked just fine ;)
You need to define __unicode__
method on your models. In an application where I am able to follow my own naming conventions, I might put the following in the base class for all my models and override where appropriate:
class MyModel(db.Model):
""" Base class provides the __repr__ so that each model has short type. """
__abstract__ = True
def __unicode__(self):
# attrs = db.class_mapper(self.__class__).column_attrs
attrs = db.class_mapper(self.__class__).attrs # show also relationships
if 'name' in attrs:
return self.name
elif 'code' in attrs:
return self.code
else:
return "<%s(%s)>" % (self.__class__.__name__,
', '.join('%s=%r' % (k.key, getattr(self, k.key))
for k in sorted(attrs)
)
)