Flask-admin: 関係のOrder_by?

作成日 2013年03月18日  ·  3コメント  ·  ソース: flask-admin/flask-admin

やあ、
私は2つのテーブルを持っており、関係によってリンクしています:

class News(db.Model):
   #[...]
    venue_id = db.Column(db.Integer(), db.ForeignKey(Venue.id))
    venue = db.relationship(Venue, backref='news')

ニュースアイテムを作成すると、会場オブジェクトが選択して表示されますが、順序付けされていません。どうすればよいですか?

ありがとうございます !

最も参考になるコメント

あなたがしなければならないのは、Flask-Adminにソートに使用するフィールドを指示することだけです。 デフォルトでは、Flask-Adminはそれについて何の仮定もしません。

これはsqlaからのスニペットです:

class PostAdmin(sqlamodel.ModelView):
    # List of columns that can be sorted. For 'user' column, use User.username as
    # a column.
    column_sortable_list = ('title', ('user', User.username), 'date')

userは、 Userテーブルとの関係です。 必要に応じて、 User.idを指定することもできます。

全てのコメント3件

あなたがしなければならないのは、Flask-Adminにソートに使用するフィールドを指示することだけです。 デフォルトでは、Flask-Adminはそれについて何の仮定もしません。

これはsqlaからのスニペットです:

class PostAdmin(sqlamodel.ModelView):
    # List of columns that can be sorted. For 'user' column, use User.username as
    # a column.
    column_sortable_list = ('title', ('user', User.username), 'date')

userは、 Userテーブルとの関係です。 必要に応じて、 User.idを指定することもできます。

これは、リストビューで並べ替え可能なものに影響を与えるようです。 での並べ替え順序の管理についてはどうですか

@mistercrunch (および私のようなGoogle経由でこれを見つけた他の人)、フォームフィールドのquery_factoryプロパティを更新できます。 このようなもの:

    def edit_form(self, obj=None):
        form = super().edit_form(obj)

        # apply a sort to the relation
        form.venue.query_factory = lambda: models.Venue.query.order_by(models.Venue.name)

        return form
このページは役に立ちましたか?
0 / 5 - 0 評価