2009-03-04 36 views
10

Tôi muốn kế thừa lớp mô hình từ một số mã của bên thứ 3. Tôi sẽ không sử dụng một số trường nhưng muốn khách hàng của tôi có thể chỉnh sửa mô hình trong Quản trị viên. Là đặt cược tốt nhất để ẩn chúng khỏi Admin hoặc tôi có thể thực sự ngăn chặn chúng được tạo ra ở nơi đầu tiên?Thừa kế mô hình Django. Ẩn hoặc xóa các trường

Ngoài ra - tôi có thể làm gì nếu một trong các trường không mong muốn là bắt buộc? Suy nghĩ đầu tiên của tôi là ghi đè phương thức lưu và chỉ đặt giá trị mặc định.

Trả lời

4

Nếu bạn đang kế thừa mô hình thì có lẽ không khôn ngoan khi cố gắng ẩn hoặc vô hiệu hóa bất kỳ trường hiện có nào. Điều tốt nhất bạn có thể làm là chính xác những gì bạn đề nghị: ghi đè lên save() và xử lý logic của bạn trong đó.

5

Bạn có thể kiểm soát các lĩnh vực mà có thể chỉnh sửa trong admin.

Từ các tài liệu Django:

"Nếu bạn muốn có một hình thức cho mô hình giả mà chỉ bao gồm tên và tiêu đề lĩnh vực, bạn sẽ xác định các lĩnh vực hoặc loại trừ như thế này:

class AuthorAdmin(admin.ModelAdmin): 
    fields = ('name', 'title') 

class AuthorAdmin(admin.ModelAdmin): 
    exclude = ('birth_date',)" 

http://docs.djangoproject.com/en/dev/ref/contrib/admin/

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