Flask-admin: рдСрд░реНрдбрд░_рдмреА рд░рд┐рд╢реНрддреЗ рдХреЗ рд▓рд┐рдП?

рдХреЛ рдирд┐рд░реНрдорд┐рдд 18 рдорд╛рд░реНрдЪ 2013  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ  ┬╖  рд╕реНрд░реЛрдд: flask-admin/flask-admin

рдирдорд╕реНрддреЗ,
рдореЗрд░реЗ рдкрд╛рд╕ рджреЛ рдЯреЗрдмрд▓ рд╣реИрдВ, рдПрдХ рд░рд┐рд╢реНрддреЗ рд╕реЗ рд▓рд┐рдВрдХ:

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

рд╕рдорд╛рдЪрд╛рд░ рдЖрдЗрдЯрдо рдмрдирд╛рддреЗ рд╕рдордп, рд╕реНрдерд▓ рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдПрдХ рдЪрдпрди рдореЗрдВ рдкреНрд░рджрд░реНрд╢рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рд▓реЗрдХрд┐рди рдЖрджреЗрд╢ рдирд╣реАрдВ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, рдореИрдВ рдпрд╣ рдХреИрд╕реЗ рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ?

рдзрдиреНрдпрд╡рд╛рдж !

рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА

рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдлреНрд▓рд╛рд╕реНрдХ-рдПрдбрдорд┐рди рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рд╣реИ рдХрд┐ рдЫрдБрдЯрд╛рдИ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдлреНрд▓рд╛рд╕реНрдХ-рдПрдбрдорд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рдмрдирд╛рдПрдЧрд╛ред

рдпрд╣ sql рд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ:

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 рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

рдЖрдкрдХреЛ рдмрд╕ рдЗрддрдирд╛ рдХрд░рдирд╛ рд╣реИ рдХрд┐ рдлреНрд▓рд╛рд╕реНрдХ-рдПрдбрдорд┐рди рдХреЛ рдпрд╣ рдмрддрд╛рдирд╛ рд╣реИ рдХрд┐ рдЫрдБрдЯрд╛рдИ рдХреЗ рд▓рд┐рдП рдХрд┐рд╕ рдХреНрд╖реЗрддреНрд░ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╣реИред рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ рдлреНрд▓рд╛рд╕реНрдХ-рдПрдбрдорд┐рди рдЗрд╕рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдХреЛрдИ рдзрд╛рд░рдгрд╛ рдирд╣реАрдВ рдмрдирд╛рдПрдЧрд╛ред

рдпрд╣ sql рд╕реЗ рд╕реНрдирд┐рдкреЗрдЯ рд╣реИ:

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 рд░реЗрдЯрд┐рдВрдЧреНрд╕

рд╕рдВрдмрдВрдзрд┐рдд рдореБрджреНрджреЛрдВ

lucasvo picture lucasvo  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

pmazurek picture pmazurek  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

galuszkak picture galuszkak  ┬╖  3рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

nickretallack picture nickretallack  ┬╖  6рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ

coreybrett picture coreybrett  ┬╖  4рдЯрд┐рдкреНрдкрдгрд┐рдпрд╛рдБ