nền: Chế độ xem được gọi khi dịch vụ thanh toán ping lại kết quả thanh toán sau hậu trường - sau đó tôi cần gửi email bằng ngôn ngữ phù hợp để xác nhận thanh toán, v.v. Tôi có thể lấy lại mã ngôn ngữ trong yêu cầu từ máy chủ thanh toán và muốn sử dụng cùng với các hệ thống i18n của Django để xác định ngôn ngữ nào cần gửi email của tôi.đặt ngôn ngữ trong chế độ xem django
Vì vậy, tôi cần phải đặt ngôn ngữ của django của tôi ứng dụng từ trong chế độ xem. Và sau đó làm mẫu của tôi rendering và gửi email tất cả trong một đi.
đặt request.session['django_language'] = lang
chỉ ảnh hưởng đến chế độ xem tiếp theo khi tôi thử nghiệm.
Có cách nào khác để làm điều đó không?
Chúc mừng,
Guy
Gợi ý tuyệt vời. Giúp tôi giải quyết một vấn đề khá không liên quan tôi đã có (nơi một doctest đã thất bại vì một số thử nghiệm trước đây sử dụng khách hàng thử nghiệm của django, mà trái hệ thống với một giá trị bất ngờ của miền địa phương.deactivate_all() ở đầu tài liệu đã khắc phục sự cố) –
Tôi có thể sử dụng nó như thế nào, để đặt ngôn ngữ trong khi người dùng đăng nhập trong chế độ xem tùy chỉnh của tôi? Mã ngôn ngữ được đặt trong bảng UserProfile. – robos85
Cảnh báo, tôi vừa khắc phục lỗi trong quá trình phát triển hiện tại, do translation.activate: các chuỗi được sử dụng lại giữa các yêu cầu và giữ ngôn ngữ cuối được kích hoạt. Điều này dẫn đến những thứ kỳ lạ như ngôn ngữ chuyển đổi quản trị django mọi lúc. Nếu bạn kích hoạt transaction.activate theo cách thủ công, đừng quên sử dụng translation.deactivate sau khi tất cả các chuỗi đã được hiển thị (đó là những gì LocaleMiddleware thực hiện sau khi hiển thị). – vincent