Tất cả thời gian ở Django tôi thấy DoesNotExist
được nâng lên như trong db.models.fields.related.py
. Không phải ObjectDoesNotExist
được xác định trong django.core.exceptions
, nhưng chỉ DoesNotExist
. Trường hợp ngoại lệ này được định nghĩa ở đâu, hoặc tôi không hoàn toàn hiểu ngoại lệ? Tôi đã kiểm tra rằng nó không có trong trường hợp ngoại lệ (ít nhất là không phải là tôi biết). Tôi bối rối rõ ràng.Django: "DoesNotExist" ở đâu?
Lưu ý: Nó cũng được cung cấp miễn phí, như một thuộc tính của một cá thể lớp con mô hình, như `self.someforeignkey.DoesNotExist. Sao có thể như thế được?
Cảm ơn Alex. Tôi không biết Django đã có phương thức add_to_class() đó. Tôi đã tìm kiếm tài liệu trong Komodo cho 'class DoesNotExist' và đang đập đầu vào tường. – orokusaki
Trừ khi có nhu cầu phân biệt lớp nào là nguồn gốc của 'không tồn tại '(rất hiếm trong kinh nghiệm của tôi), nó an toàn hơn cho người dùng' ObjectDoesNotExist'. – Marcin
Tôi nghĩ rằng trong hầu hết mọi tình huống, nó tốt hơn 100% để biết ngoại lệ nào được nêu ra. Một tấm chăn 'ngoại trừ ObjectDoesNotExist:' không tốt hơn 'ngoại trừ:'. Vì bạn không biết điều gì đã gây ra ngoại lệ, bạn sẽ có khả năng sẽ hành động theo thông tin xấu. – orokusaki