I have two tables in a 1 to M relationship: ContactGroup and Contact. In the view for Contact, I want to be able to filter (search) on a field in ContactGroup called group_colour. When I use search_columns = ['name', 'contact_group.group_colour'] I get: KeyError: 'contact_group.group_colour'.
How do I overwrite the search to include this field?
Views.py
class ContactGeneralView(ModelView):
search_columns = ['name', 'contact_group.group_colour']
datamodel = SQLAInterface(Contact)
label_columns = {"contact_group": "Contacts Group"}
list_columns = ["name", "personal_phone", "contact_group"]
base_order = ("name", "asc")
models.py
class ContactGroup(BaseMixin, Model):
id = Column(Integer, primary_key=True)
name = Column(String(50), unique=True, nullable=False)
group_colour = Column(String(50))
def __repr__(self):
return self.name
class Contact(BaseMixin, Model):
id = Column(Integer, primary_key=True)
name = Column(String(150), unique=True, nullable=False)
address = Column(String(564))
birthday = Column(Date, nullable=True)
personal_phone = Column(String(20))
personal_celphone = Column(String(20))
contact_group_id = Column(Integer, ForeignKey("contact_group.id"), nullable=False)
contact_group = relationship("ContactGroup")
gender_id = Column(Integer, ForeignKey("gender.id"), nullable=False)
gender = relationship("Gender")
def __repr__(self):
return self.name