Làm thế nào để đọc tên bảng cơ sở dữ liệu của một cá thể Model?


101

Với đối tượng thể hiện của một mô hình, làm cách nào để lấy tên của bảng cơ sở dữ liệu?

Tôi không muốn chỉ định tên một cách rõ ràng trong lớp Meta.

Câu trả lời:


179

Tôi đã tự tìm ra câu trả lời: thuộc tính _meta của một phiên bản có thông tin:

model_instance._meta.db_table

điều này khá kỳ lạ khi tên bảng của Model có thể truy cập từ thuộc tính được bảo vệ_meta::Options
Alex-Bogdanov

5
@ Alex-Bogdanov: _metatài sản không được bảo vệ. Nó là một phần được lập thành văn bản của API công khai. Nó được bắt đầu bằng dấu gạch dưới hàng đầu để tránh xung đột với tên mà mọi người có thể thực sự muốn sử dụng trên mô hình của họ.
Ryan Hiebert

1
Nếu bạn muốn, tạo ra một phương pháp tài sản để trả lại ... @property def table_name(self): return self._meta.db_table
Jcc.Sanabria
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.