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

Truy vấn khi tham số không phải là django

Tôi không biết, nếu tôi nhận được câu hỏi của bạn, nhưng

Model.objects.filter(x=x, y__isnull = False, z=z)

cung cấp cho bạn bộ truy vấn, trong đó y cột không rỗng (IS NOT NULL ).

Đây là tài liệu liên quan.

CHỈNH SỬA:Kiểm tra xem y có phải là Không và tự động tạo bộ truy vấn của bạn:

if y is None:
    qs = Model.objects.filter(x=x).filter(z=z)
elif z is None:
    qs = Model.objects.filter(x=x).filter(y=y)
...

Nếu có quá nhiều đối số để giải quyết, bạn có thể sử dụng một cái gì đó như thế này; giả sử rằng x , y , z được lưu trữ trong từ điển your values :

your_values = { 'x' : 'x value', 'y' : 'y value', 'z' : 'value'}
arguments = {}
for k, v in your_values.items():
    if v:
        arguments[k] = v

Model.objects.filter(**arguments)


  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ác cột đã chọn không có loại tương thích, ngay cả khi nó có cùng loại

  2. Làm thế nào để CHỌN trên hai bảng?

  3. Tại sao tôi nhận được System.Data.DataRowView thay vì các giá trị thực trong Listbox của mình?

  4. Doctrine 2 DQL MySQL tương đương với ROUND ()?

  5. PHP có cấu trúc tương tự như DataSet của .NET không?