Найти - Пользователи
Полная версия: flask-admin filter по внешнему ключу peewee orm
Начало » Web » flask-admin filter по внешнему ключу peewee orm
1
Virtul
Здрасьте :)
Нагуглить не получилось, нужна помощь: использую 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,)
sander
попробуйте
column_filters = (Policy.location,)
по @property фильтровать не получится
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB