2011-02-17 61 views
0

我有一個訂單號碼列表。從我的服務訂單視圖中,我可以手動鍵入一個字段編號以查找要刪除的訂單編號。這很好。刪除django中的訂單號碼

order = models.Order.objects.get(pk=1219) 
if request.POST.get('delete'): 
    order.delete() 

現在我的問題。我有一個編輯訂單,地址爲/orders/edit/(?P<order_no>\d+)/,在這個編輯訂單表格中,我可以進入一個名爲/quote/service_order/(?P<client_id>\d+)/(?P<request_type>\d+)/的新頁面。在服務訂單視圖中,這是訂單被刪除的地方。我不想手動記下主鍵值(訂單號),而想刪除無論(?P \ d +)在url之前的編輯訂單表單中的訂單號。有沒有可能解決這個問題?我希望我把一切都弄清楚了。

+0

「在服務訂單視圖中,這是刪除訂單的地方」由於此訂單未在此URI中引用,因此這不是一個很好的設計。爲什麼不是此URI的訂單號部分? – 2011-02-17 10:52:06

回答

1

可以接受查詢字符串多個參數,如:

/quote/service_order/(\d+)/(\d+) 

然後在您的視圖:

# client_id - first parameter in braces from the url 
# order_id - 2nd parameter in braces from the url 
def order_view(request, client_id, order_id): 
    order = models.Order.objects.get(pk=int(order_id)) 
    if request.POST.get('delete'): 
     order.delete() 

不要忘記檢查,如果用戶刪除訂單權限。