Форум сайта python.su
Здрасьте :)
Нагуглить не получилось, нужна помощь: использую flask-admin, хочу в TemplateAdmin иметь фильтр по внешнему ключу (по строке репрезентации, которую выдаёт __unicode__() ), как это сделать?
Варианты column_filters = ('name', Policy) и column_filters = ('name', ‘policy’) выдают ошибки
Заранее благодарю!
class Template(BaseModel): name = CharField(unique=True) class Meta: db_table = 'templates' def __unicode__(self): return self.name class TemplatePolicy(BaseModel): policy = ForeignKeyField(Policy, related_name='template_policies') template = ForeignKeyField(Template, related_name='template_policies') class Meta: db_table = 'template_policies' indexes = ( (('policy', 'template'), True), ) def __unicode__(self): return self.policy.name + ": " + self.template.name class Policy(BaseModel): location = ForeignKeyField(Location, related_name='policies') unit = ForeignKeyField(Unit, related_name='policies') component = ForeignKeyField(Component, related_name='policies') @property def name(self): return "%s-%s-%s" % (self.location.name, self.unit.name, self.component.name) class Meta: db_table = 'policies' indexes = ( (('location', 'unit', 'component'), True), ) def __unicode__(self): return self.name def __str__(self): return self.name class PolicyAdmin(ModelView): column_filters = (Location.name, Unit.name, Component.name) inline_models = (InterfacePolicy,) class TemplateAdmin(ModelView): column_searchable_list = ('name',) column_filters = ('name',) inline_models = (TemplatePolicy,)
Офлайн
попробуйте
column_filters = (Policy.location,)
по @property фильтровать не получится
Отредактировано sander (Фев. 20, 2015 13:18:28)
Офлайн