Tôi có khó khăn bằng cách sử dụng search_fields
khi biểu thức tìm kiếm có nhiều lời nói và tôi muốn thực hiện một startswith tìm kiếmdjango tìm kiếm quản trị với nhiều lời
Tôi có một lớp
class Foo(models.Model):
kw = models.CharField(max_length = 255)
...
class FooAdmin(admin.ModelAdmin):
search_fields = ('^kw',)
Các '^'
chỉ tôi muốn thực hiện tìm kiếm bắt đầu. Nếu tôi đang tìm kw 'foo fuu', django sẽ thực hiện truy vấn:
select * from app_foo where `foo`.`kw` like 'foo%' and `foo`.`kw` like 'fuu%'
Truy vấn này rõ ràng không mang lại kết quả nào. Tôi nên làm gì để làm cho động cơ tìm kiếm 'foo fuu%'
?
Dường như Django chia các truy vấn trên không gian vì vậy đây có thể không thể làm. Bạn đã xem xét tùy chọn toàn văn với '@' chưa? –
Điều này có thể thay đổi mã thông báo tách không? –
Không phải là tôi biết. Các tài liệu nói: 'Lưu ý rằng đầu vào truy vấn được phân cách bằng dấu cách, vì vậy, theo ví dụ này, hiện tại không thể tìm kiếm tất cả các bản ghi trong đó first_name chính xác là 'john winston' (chứa khoảng trắng). ' –