Tôi mới dùng python và django và tôi có câu hỏi liên quan đến chức năng chuyển hướng.Chuyển hướng Django với kwarg
Đây là phiên bản đã giảm của tệp views.py của tôi.
def page_index(request, error_message=''):
print error_message
def add_page(request):
return redirect('page_index') # this work fine
return redirect('page_index', error_message='test') # this does not work
Và đây là một phiên bản ngắn của urls.py tôi
urlpatterns = patterns(
'x.views',
url(r'^$', 'page_index', {'error_message': 't'}, name='page_index'),
url(r'^add/$', 'add_page', name='add_page'),
)
Khi tôi cố gắng chuyển hướng đến PAGE_INDEX mà không có sự tranh cãi từ khóa tất cả mọi thứ hoạt động tốt, nhưng khi tôi sử dụng kwag tôi nhận được lỗi sau thông điệp:
NoReverseMatch tại/trang/thêm/
Xếp cho 'PAGE_INDEX' với các đối số '()' một Không tìm thấy đối số từ khóa '{' error_message ':' test '}'.
Tôi đang làm gì sai?
là có một cách để gọi một cái nhìn với thông tin thats không phải trong url? – Justus1
Có, bạn làm điều đó bằng Python - chỉ cần thực hiện 'return page_index (error_message = 'test')' từ khung nhìn add_page của bạn. –
nhưng nếu bạn làm điều đó thì url không thay đổi, bạn đã trả lại nội dung của một chế độ xem khác (page_index) vào chế độ xem hiện tại (add_page) có vẻ như là một mẫu xấu đối với tôi. Ngoài ra, thay vì tung giải pháp nhắn tin dựa trên phiên của riêng bạn, tôi khuyên bạn nên sử dụng [khung thông điệp] tích hợp của Django (https://docs.djangoproject.com/en/1).3/ref/contrib/messages /) – Anentropic