thể trùng lặp:
Django dynamic model fieldsDjango người dùng cuối được xác định các trường, làm thế nào để?
Morning chàng trai tốt! Kịch bản là như sau. Đối với một số mô hình trên Django, tôi muốn cho phép người dùng cuối xác định các trường của riêng mình. Nó sẽ là tuyệt vời nếu tôi có thể giữ tất cả các tính năng tuyệt vời của Django như ORM, vì vậy tôi vẫn có thể thực hiện các cuộc gọi như field__gte để tìm kiếm trên mô hình, vẫn có xác nhận trường theo loại trường, v.v. Tôi đã nghĩ về hai cách làm điều này, và tôi còn cởi mở hơn với những gợi ý mới. Bất kỳ thông tin phản hồi sẽ được VERY đánh giá cao.
Cách tiếp cận đầu tiên, là thuộc tính-giá trị thuộc tính (http://en.wikipedia.org/wiki/Entity%E2%80%93attribute%E2%80%93value_model), mà django đã có ứng dụng. Xem http://code.google.com/p/django-custom-field/ Tôi nghĩ rằng đây sẽ là giải pháp OK, nhưng tôi mất khả năng thực hiện "mymodel.objects.filter (custom_field_x = something)". Có lẽ có một cách để lấy lại ORM, bất kỳ ý tưởng nào? Nhưng tôi đã nghe rất nhiều câu chuyện xấu về phương pháp này mà tôi hơi sợ sử dụng nó.
Cách tiếp cận thứ hai là có bảng cơ sở dữ liệu cho từng người dùng (có thể không quá 1000). Tôi đã đọc django có một cái gì đó trong dòng inspectdb, mà thực sự kiểm tra các lĩnh vực có và tạo ra các mô hình cho bạn. Điều này có thể hữu ích nhưng tôi nghĩ có lẽ tôi nên lưu trữ các lĩnh vực người dùng cụ thể này đã tạo ra và bằng cách nào đó dinamically nói với django, hey, chúng tôi cũng có các lĩnh vực này trong mô hình này. Điều này có thể không? Tôi biết nó thường là xấu để có bảng khác nhau cho mỗi người dùng, nhưng xem xét kịch bản này, làm thế nào các bạn sẽ đánh giá phương pháp này, nó sẽ là ok để có một bảng cho mỗi người dùng?
Mô hình yêu cầu trường tùy chỉnh là ví dụ Person. Họ có thể muốn một trường tùy chỉnh để lưu trữ địa chỉ, nhóm máu hoặc bất kỳ thứ gì khác.
NHIỀU CẢM ƠN trước! Chuc ngay chủ nhật tôt lanh!
Rất giống: How to create user defined fields in Django - nhưng chỉ nói về EAV mà tôi muốn tránh. Tôi mở cho những ý tưởng mới!
Tìm thấy tài liệu tham khảo tốt nhất bao giờ hết: http://stackoverflow.com/questions/7933596/django-dynamic-model-fields Xin lỗi, câu hỏi của tôi là bản sao của một trong những . Mods, cảm thấy tự do để đóng nó. – Clash