# encoding: utf-8 from app import admin, db from app.model.model import Model, View class RepresentativeModel(db.Model, Model): __tablename__ = "representative" id = db.Column(db.Integer, primary_key=True) first_name = db.Column(db.String(200)) last_name = db.Column(db.String(200)) birth_date = db.Column(db.Date) birth_place = db.Column(db.String(200)) birth_region = db.Column(db.String(200)) birth_country_id = db.Column(db.Integer, db.ForeignKey("country.id")) birth_country = db.relationship( "CountryModel", foreign_keys="RepresentativeModel.birth_country_id" ) job = db.Column(db.String(200)) nationality_id = db.Column(db.Integer, db.ForeignKey("country.id")) nationality = db.relationship( "CountryModel", foreign_keys="RepresentativeModel.nationality_id" ) picture = db.Column(db.String(200)) def __repr__(self): return f"{self.last_name.upper()} {self.first_name.capitalize()}" class AdminView(View): column_default_sort = "last_name" column_exclude_list = [ "birth_region", "birth_country", "picture", ] column_filters = ["last_name", "first_name", "nationality.name", ] admin.add_view(AdminView(RepresentativeModel, db.session, name="Representative", category="CRUD"))