Trong Django, các cài đặt được lưu trữ trong một tệp, settings.py. Tệp này là một phần của mã và đi vào kho lưu trữ. Nó chỉ là các nhà phát triển đối phó với tập tin này. Quản trị viên giao dịch với các mô hình, dữ liệu trong cơ sở dữ liệu. Đây là dữ liệu mà các nhân viên không phát triển chỉnh sửa và khách truy cập trang web thấy được hiển thị trong các mẫu.Làm thế nào để thực hiện một số cài đặt Django có thể truy cập bởi nhân viên?
Điều này, trang web của chúng tôi và nhiều trang khác, có nhiều tùy chọn cài đặt cần được biên tập bởi các nhân viên không phải nhà phát triển. Chúng tôi đang nói về các hằng số trên toàn trang web độc lập thực sự không có chỗ trong cơ sở dữ liệu. Đặt chúng vào cơ sở dữ liệu sẽ dẫn đến nhiều truy vấn vô nghĩa. Caching có thể làm giảm bớt điều đó, nhưng điều đó có vẻ phức tạp không cần thiết để xử lý những gì có thể được thực hiện với một dòng duy nhất trong tệp settings.py.
Tôi đã thông báo this dbsettings app, nhưng nó cũ và không bị ảnh hưởng. Tôi cũng nhận thấy rằng ứng dụng thương mại điện tử django, Satchmo, bao gồm một ngã ba cụ thể sử dụng của ứng dụng dbsettings này. Chúng ta có thể xây dựng một cái gì đó tương tự vào trang web của chúng tôi, một ứng dụng lưu trữ một số cài đặt dưới dạng cặp khóa/giá trị trong một bảng cơ sở dữ liệu, nhưng nó thực sự có vẻ giống như cách tiếp cận sai. Tại sao đặt một cái gì đó trong DB mà không thuộc về chỉ để làm cho nó dễ dàng chỉnh sửa hơn bởi các nhà phát triển không?
Chúng tôi có danh sách các cài đặt trên toàn trang web trên trang web Django của chúng tôi mà chúng tôi muốn các quản trị viên không phải nhà phát triển có thể chỉnh sửa được. Cách tốt nhất để thực hiện điều này là gì?
+1 vì biết điều này có thể giúp quản lý dự án Django dễ dàng hơn trong VCS. Các nhà phát triển phải cẩn thận không thực hiện các thay đổi cục bộ đối với settings.py nếu không. –
bộ nhớ đệm sẽ làm giảm bớt điều này (khi cài đặt cục bộ được đưa vào cơ sở dữ liệu) chỉ với một truy vấn cho mỗi trường hợp của quá trình django. – Evgeny
để khởi động lại máy chủ để tải lại cài đặt, bạn chỉ có thể gọi tệp "touch site.wsgi", ví dụ: với một công việc cron, nhưng điều này sẽ chỉ hoạt động nếu quá trình wsgi của bạn chạy ở chế độ daemon – Evgeny