Я создаю flask
веб-сайт, который использует flask-admin
для управления базой данных.Я пытаюсь отсортировать столбец, который содержит внешний ключ.
Одно из моих представлений модели flask-admin предназначено для промежуточной таблицы, я хотел бы отсортировать таблицу в моем представлении по столбцу, который является отношениемк другому столу.по какой-то причине column_default_sort = 'pizza_id'
сортирует список, но column_sortable_list = ('pizza_id',)
не работает
вот как это выглядит сейчас я хотел бы, чтобы заголовок таблицы Pizza
был синим, как дляId
означает, что он может щелкнуть по нему и отсортировать по этому столбцу.пример приведен ниже
вот мои модели sqlalchemy
class Topping(db.Model):
__tablename__ = 'toppings'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False, unique=True)
description = db.Column(db.Text)
price = db.Column(db.Float, nullable=False)
def __repr__(self):
return f"{self.name}"
class Pizza(db.Model):
__tablename__ = 'pizza'
id = db.Column(db.Integer, primary_key=True)
name = db.Column(db.String, nullable=False, unique=True)
description = db.Column(db.String)
extra_price = db.Column(db.Float)
toppings = db.relationship('Topping', secondary='pizza_toppings')
def __repr__(self):
return self.name
# my pizza intermediate table
class PizzaTopping(db.Model):
__tablename__ = 'pizza_toppings'
id = db.Column(db.Integer, primary_key=True)
pizza = db.relationship('Pizza', primaryjoin='PizzaTopping.pizza_id == Pizza.id', backref='pizza_toppings')
topping = db.relationship('Topping', primaryjoin='PizzaTopping.topping_id == Topping.id', backref='pizza_toppings')
pizza_id = db.Column(db.ForeignKey('pizza.id'), nullable=False)
topping_id = db.Column(db.ForeignKey('toppings.id'), nullable=False)
вот мой вид модели фляги-admin
class MyModelView(ModelView):
can_set_page_size = True
page_size = 15
column_display_pk = True
column_display_all_relations = True
column_sortable_list = ('pizza_id',)
column_default_sort = 'pizza_id'
can_export = True
def is_accessible(self):
return current_user.is_authenticated and current_user.has_roles(("owner", 'admin'))
def inaccessible_callback(self, name, **kwargs):
return redirect('/')
Любая помощь очень ценится, и если вам нужна дополнительная информация, пожалуйста, спросите.