Tôi đang sử dụng cơ sở khai báo SQLAlchemy để xác định mô hình của mình. Tôi định nghĩa một tài sản name
được tính toán từ một trong các cột (title
):SQLAlchemy: truy vấn thuộc tính tùy chỉnh dựa trên trường bảng
class Entry(Base):
__tablename__ = "blog_entry"
id = Column(Integer, primary_key=True)
title = Column(Unicode(255))
...
@property
def name(self):
return re.sub(r'[^a-zA-Z0-9 ]','',self.title).replace(' ','-').lower()
Khi cố gắng để thực hiện một truy vấn sử dụng name
, SQLAlchemy ném một lỗi:
Session.query(Entry).filter(Entry.name == my_name).first()
>>> ArgumentError: filter() argument must be of type sqlalchemy.sql.ClauseElement or string
Sau khi điều tra một thời gian, Tôi thấy rằng có lẽ comparable_using()
có thể giúp, nhưng tôi không thể tìm thấy bất kỳ ví dụ nào cho thấy một bộ so sánh tham chiếu đến một cột khác của bảng.
Điều này có thể thực hiện được hoặc có cách tiếp cận tốt hơn không?
Cảm ơn, bây giờ tôi thấy rằng tôi phải cố gắng tiếp cận khác. – amercader