2012-03-06 16 views
5

Trong url của tôi, tôi có một số URL có cùng thông số được đặt tên, user_id. Có thể truy cập tham số này hoặc trong phần mềm trung gian - vì vậy tôi có thể truyền nó vào ngữ cảnh - hoặc trong chính khuôn mẫu đó không?Truy cập thông số URL có tên trong Mẫu hoặc Middleware

URL mẫu conf để minh họa cho câu hỏi:

url(r'^b/(?P<user_id>[0-9]+)/edit?$', user.edit.EditUser.as_view(), name='user_edit'), 
url(r'^b/(?P<user_id>[0-9]+)/delete?$', user.delete.DeleteUser.as_view(), name='user_delete') 

Trả lời

5

Nếu bạn cần dữ liệu này trong các mẫu, chỉ cần ghi đè phương pháp get_context_data xem của bạn:

class MyView(View): 
    def get_context_data(self, **kwargs): 
     context = super(MyView, self).get_context_data(**kwargs) 
     context['user_id'] = self.kwargs.get('user_id') 
     return context 
0

Đối với quan điểm dựa trên lớp, các view là đã có sẵn trong ngữ cảnh, vì vậy bạn không cần phải làm bất cứ điều gì ở phía bên xem. Trong mẫu, chỉ cần làm như sau:

{{ view.kwargs.user_id }} 

Xem this câu trả lời