我使用Flask开发应用程序。我使用Postgres db(psycop2),SQLAlchemy和Flask-Admin作为管理界面。我有一个问题,找不到解决方案。很明显,文章和标签表之间存在多对多关系。在Flask-Admin界面中,当我尝试向articel添加标签时(反之亦然),效果很好。但是它显示糟糕,并且无法选择正确的标签,因为它显示得像一个对象:
没错,因为它是我的模型类的实例。但是,如何在此仅显示该模型中单个字段的值?我真的不知道该怎么做。管理界面中是否有此类“表单字段”的参数?我什么也找不到。我希望有人知道解决方案。
谢谢你的帮助!
您需要__unicode__
在模型上定义方法。在我可以遵循自己的命名约定的应用程序中,可以将以下内容放在所有模型的基类中,并在适当的地方覆盖:
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)
)
)
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句