2011-06-27 27 views

Trả lời

-1
def calculate(request, b=None) 
5

Đi qua một giá trị mặc định cho phương pháp làm tham số tùy chọn.

Trong trường hợp của bạn, bạn có thể thực hiện:

def calculate(request, b=None) 
    pass 

Sau đó, trong mẫu của bạn, bạn có thể sử dụng điều kiện cho hành vi khác nhau:

{% if b %} 
    Case A 
{% else %} 
    Case B 
{% endif %} 
47

Bạn cũng có thể cần phải cập nhật công văn URL của bạn để xử lý các yêu cầu có hoặc không có tham số tùy chọn.

url(r'^calculate/?(?P<b>\d+)?/?$', 'calculate', name='calculate'), 
url(r'^calculate/$', 'calculate', name='calculate'), 

Nếu bạn chuyển b qua URL, nó sẽ truy cập định nghĩa URL đầu tiên. Nếu bạn không bao gồm tham số tùy chọn, nó sẽ truy cập định nghĩa thứ hai nhưng chuyển sang cùng một chế độ xem và sử dụng giá trị mặc định bạn đã cung cấp.

+11

Tôi nghĩ rằng đây là phần quan trọng nhất của câu trả lời. – SummerBreeze

+1

Bạn có thể sử dụng cả hai định nghĩa trong 'đảo ngược ('tính toán', ...)'? – naktinis

+1

Có, bạn có thể cung cấp cả args và kwargs dưới dạng thuộc tính được chuyển cho phương thức ngược lại. – vjimw

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