Mysql
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> Mysql

Tôi có thể sử dụng các đối tượng Django F () với nối chuỗi không?

Tôi đã có một vấn đề tương tự; về cơ bản, tôi muốn nối hai trường để có được tên đầy đủ của người dùng. Tôi đã giải quyết vấn đề theo cách này (nhưng phải nói rằng tôi đang sử dụng Postgres):

from django.db.models.functions import Concat
from django.db.models import F, Value, CharField

AnyModel.objects.filter(**kwargs).annotate(full_name=Concat(F('model__user_first_name'), Value(' '), F('model__user_last_name'), output_field=CharField()))

ở đâu, F('...') đánh giá đối số của nó dưới dạng truy vấn, vì vậy bạn có thể truy vấn một trường của chính mô hình hoặc trải dài trên các mô hình như bạn làm trong filter / get, trong khi Value('...') đánh giá đối số của nó theo nghĩa đen (trong trường hợp của tôi, tôi cần một khoảng trắng được đặt ở giữa first_namelast_name ) và output_field=... chỉ định Loại của trường được chú thích (Tôi muốn trở thành CharField ) .Để biết thêm thông tin, bạn có thể đọc tài liệu của Django về Concat

Hy vọng nó sẽ hữu ích cho ai đó ngoài kia. Chúc mừng



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Có bao nhiêu hàng sẽ bị khóa bằng cách CHỌN ... ĐẶT HÀNG THEO xxx GIỚI HẠN 1 ĐỂ CẬP NHẬT?

  2. mysql TIME_WAIT; vấn đề quá nhiều kết nối

  3. MySQL nối nhiều thành nhiều hàng đơn

  4. Cách đặt múi giờ MySQL JDBC chính xác trong cấu hình Spring Boot

  5. Thứ tự chữ và số theo Mysql