Tôi làm cách nào để truy vấn tên đầy đủ ở Django?Truy vấn tên đầy đủ ở Django
Để làm rõ, tôi chủ yếu muốn làm tạo ra một cột tạm thời, kết hợp first_name và LAST_NAME để cung cấp cho một fullname, sau đó làm một NHƯ vào đó, như vậy:
select [fields] from Users where CONCAT(first_name, ' ', last_name) LIKE '%John Smith%";
Các truy vấn trên sẽ trả lại tất cả người dùng tên là John Smith. Nếu có thể tôi muốn tránh sử dụng một cuộc gọi SQL thô.
Mô hình tôi đang nói đến cụ thể là mô hình người dùng django.contrib.auth.models cổ phiếu. Thay đổi mô hình trực tiếp không phải là vấn đề.
Ví dụ: nếu người dùng tìm kiếm 'John Paul Smith', nó phải khớp với người dùng có tên 'John Paul' và họ 'Smith', cũng như người dùng có tên 'John' và họ 'Paul Smith'.
Vui lòng bao gồm các mô hình Django của bạn. Nếu bạn muốn có một "giá trị dẫn xuất" (như 'CONCAT (first_name, '', last_name)' trong SQL), bạn sẽ phải thêm nó vào mô hình. Do đó, bao gồm mô hình trong câu hỏi của bạn. –
Bạn có biết, BTW, rằng 'CONCAT (first_name, '', last_name) LIKE '% John Smith%" 'là không hiệu quả khủng khiếp? Sử dụng' first_name LIKE'% John 'AND last_name LIKE' Smith% ''có thể hiệu quả hơn Tại sao bạn sử dụng CONCAT khi có những cách không CONCAT để làm điều này? –
Đó là mô hình người dùng django.contrib.auth.models chuẩn. Chúng tôi đã thêm/thay đổi các trường trong mô hình này, vì vậy sửa đổi không phải là –