2016-04-07 22 views
6

Tôi đang sử dụng Django 1.9.Đối số context_instance của render_to_string bị phản đối

Với render_to_string Tôi có thể dễ dàng chuyển html được hiển thị dưới dạng json sang tập lệnh khách hàng của tôi. Tuy nhiên, kể từ khi mẫu dựa trên các biến như user, tôi cũng cần phải vượt qua context_instance=RequestContext(request), nếu không thì mẫu sẽ không biết request.user là gì, vì vậy if tuyên bố phá vỡ vv

Tuy nhiên tôi nhận được cảnh báo không dùng nữa này:

RemovedInDjango110Cảnh báo: Đối số context_instance của render_to_string không được dùng nữa. response_data [ 'content'] = render_to_string ("Hồ sơ/userprofile_detail/content.html", bối cảnh, context_instance = RequestContext (theo yêu cầu))

cách không phản đối để vượt qua RequestContext trong một render_to_string là gì?

Trả lời

6

render_to_string có một cuộc tranh luận bối cảnh, vì vậy bạn chỉ có thể vượt qua nó trực tiếp như một cuốn từ điển như bạn làm với bất kỳ phản ứng khác

render_to_string(template_name, context=None, 
       context_instance=_context_instance_undefined, request=None, using=None) 

Các tài liệu liên quan cũng bao gồm một lưu ý khuyến khích này

Deprecated kể từ phiên bản 1.8:

Đối số context_instance không được chấp nhận. Sử dụng ngữ cảnh và nếu yêu cầu cần thiết.

2

Phương pháp được đề xuất là để vượt qua request khi bạn gọi render_to_string. Django sau đó sẽ hiển thị mẫu với ngữ cảnh yêu cầu.

render_to_string("profile/userprofile_detail/content.html", context, request=request) 
+0

Xin cảm ơn! Cuối cùng một cái gì đó mà làm việc với Django 1,10+. :) Đây phải là câu trả lời đúng, tôi tin. – Teekin

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