2012-05-10 46 views

Trả lời

15

Bạn cần reverse.

reverse('app1.view.view1') 

Nếu bạn muốn tìm hiểu URL và chuyển hướng đến nó, sử dụng redirect

redirect('app1.view.view1') 

Nếu muốn đi xa hơn và không để hardcode tên nhìn của bạn, hoặc, bạn có thể name your URL patterns và sử dụng các tên này thay vì .

1

Bạn có thể sử dụng chức năng reverse cho việc này. Bạn có thể chỉ định không gian tên và tên cho url bao gồm và url tương ứng, để làm cho tái cấu trúc dễ dàng hơn.

8

này phụ thuộc vào việc bạn muốn để có được nó, nếu bạn muốn để có được các url trong một cái nhìn (mã python), bạn có thể sử dụng reverse function (documentation):

reverse('admin:app_list', kwargs={'app_label': 'auth'}) 

Và nếu muốn sử dụng nó trong một mẫu sau đó bạn có thể sử dụng thẻ url (documentation):

{% url 'path.to.some_view' v1 v2 %} 
2

Nếu bạn muốn url của view1 vào view1 các request.get_path tốt nhất là()

3

Như đã nói khác, chức năng reverseurl templatetags có thể (nên) được sử dụng cho việc này.

Tôi muốn giới thiệu thêm một tên cho mẫu url của bạn

urlpatterns = patterns('', 
    url(r'^view1$', 'app1.view.view1', name='view1'), 
) 

và để đảo ngược nó nhờ tên này

reverse('view1') 

Điều đó sẽ làm cho mã của bạn dễ dàng hơn để cấu trúc lại

2

Có , tất nhiên bạn có thể lấy đường dẫn url của chế độ xem có tên 'view1' mà không cần mã hóa url.

Tất cả những gì bạn cần làm là - chỉ cần nhập chức năng 'đảo ngược' từ urlresolvers Django.

Chỉ cần xem mã ví dụ bên dưới:

from django.core.urlresolvers import reverse 

from django.http import HttpResponseRedirect 

def some_redirect_fun(request): 

    return HttpResponseRedirect(reverse('view-name')) 
Các vấn đề liên quan