2012-12-20 29 views
6

Đối với tất cả các nhu cầu Django của tôi ghi đè phương thức lưu yêu cầu, tôi đã sử dụng save() trong các mô hình của mình. Đột nhiên khi tôi đang tìm kiếm thứ gì đó yêu cầu một chút bùng phát, ai đó đã đề xuất ghi đè save_model() trong lớp quản trị của tôi.Sự khác biệt giữa lưu và save_model()

Tôi tìm thấy tài liệu trên cả hai và tôi nhận thấy ngay lập tức rằng các đối số khác nhau. Có phải save_model() chỉ được gọi khi mô hình được lưu từ quản trị viên? và phương pháp save() được gọi là bất cứ khi nào mô hình được lưu?

CẬP NHẬT

Vì vậy, tôi đã tìm ra rằng khi lưu từ quản trị viên. Cả hai 'save' và 'save_model()' đều được gọi. Có vẻ như 'save_model()' được gọi trước. Trong ứng dụng cụ thể của tôi, tôi đang sử dụng các tín hiệu pre_save và ghi đè 'save()'. Bây giờ tôi muốn thêm vào phần ghi đè 'save_model()'. Đó là sự tương tác và trật tự của tất cả các ghi đè và tín hiệu gây nhầm lẫn cho tôi.

Trả lời

3

save() là phương thức Model trong khi save_model() là phương thức ModelAdmin ... có.

+1

OK, tôi biết điều đó. Nhưng sự khác biệt cơ bản là gì? tại sao cả hai tồn tại? Khi nào được gọi là so với cái kia? – Jglstewart

+0

và nếu bạn đang lưu từ quản trị viên .. những gì được gọi là đầu tiên? save_model() hoặc lưu()? – Jglstewart

+1

Một tồn tại để các quy tắc cụ thể của quản trị viên/chỉ có thể được triển khai và quy tắc còn lại tồn tại để các quy tắc có thể ảnh hưởng đến tất cả việc sử dụng mô hình có thể được triển khai. –

Các vấn đề liên quan