Thành ngữ được đề nghị để kiểm tra xem truy vấn có trả về bất kỳ kết quả nào không?
Ví dụ:Kiểm tra truy vấn trống trong Django
orgs = Organisation.objects.filter(name__iexact = 'Fjuk inc')
# If any results
# Do this with the results without querying again.
# Else, do something else...
Tôi cho rằng có nhiều cách khác nhau của việc kiểm tra này, nhưng tôi muốn biết làm thế nào một người dùng có kinh nghiệm Django sẽ làm điều đó. Hầu hết các ví dụ trong các tài liệu chỉ cần bỏ qua trường hợp không có gì đã được tìm thấy ...
này dường như cũng được ưa thích trong tài liệu, ví dụ: https: // docs.djangoproject.com/en/1.8/topics/http/shortcuts/#id7 – Wtower
@Wtower Mã bạn tham chiếu có hợp đồng để tăng 404 nếu biểu thức lọc không đạt bất kỳ bản ghi nào hoặc để tạo ra một 'danh sách' của kết quả nếu có hồ sơ. Mã sẽ xuất hiện trên cơ sở dữ liệu một lần. Nếu họ đã sử dụng 'exist()' hoặc 'count()' để kiểm tra đầu tiên xem liệu sẽ có các bản ghi được trả về hay không, chúng sẽ nhấn cơ sở dữ liệu hai lần (một lần để kiểm tra, một lần để lấy các bản ghi). Đây là một tình huống cụ thể. Nó không đòi hỏi rằng trong trường hợp * chung, phương thức ưa thích để biết liệu một truy vấn sẽ trả về các bản ghi là sử dụng làm 'if queryset: ...' – Louis
@Louis mã tôi tham chiếu chỉ là một ví dụ mà nó chứa một dòng 'if not my_objects:' để chứng minh rằng đây là cách chúng thực hiện trong tài liệu. Tất cả những thứ khác hoàn toàn không liên quan nên tôi không hiểu điểm của bạn. Họ cũng có thể kiếm được một nghìn truy vấn và nó vẫn hoàn toàn không liên quan vì đây không phải là điểm của câu trả lời này, mà tôi làm rõ rằng tôi đồng ý. – Wtower