2013-01-14 57 views
1

在admin.py我已經安裝所謂的出口,你可以看到下面的動作......Django的:傳遞一個QuerySet另一種觀點與HttpResponseRedirect

class RecipientAdmin(admin.ModelAdmin): 
    actions = [export] 
export.short_description = "Export Stuff" 
admin.site.register(Recipient, RecipientAdmin) 

這將運行下面的函數...

def export(modeladmin, request, queryset): 
    return HttpResponseRedirect("/export/") 

我的問題是...

我怎樣才能通過查詢集到另一個視圖/頁,可以使用HttpResponseRedirect?還是有另一種方法我應該嘗試做到這一點?

我希望在列表視圖上預先選定的記錄被帶到新頁面,以便我可以遍歷它們。

+0

爲什麼要重定向呢?是否可以在函數export()中調用'/ export /'背後的視圖? – scytale

+0

我想要一個帶有附加選項的中間確認頁面 – Prometheus

回答

2

有兩種方法可以做到這一點。

1>如果你想要做的只是過濾模型中的一些字段,那麼你可以通過URL中的過濾器。例如:「/導出/ ID_ GTE = 3個&狀態 _exact = 3?」

2>在導出操作功能,可以設置一些變量或整個查詢集在會話,然後在您檢查導出視圖

def export(modeladmin, request, queryset): 
    """ 
    not sure if this will work 
    """ 
    request.session['export_querset'] = queryset 

    """ 
    if above does not work then just set this and check for it in view and u can make the queryset again if this is set 
    """ 
    request.session['export_querset'] = 1 
    return HttpResponseRedirect("/export/") 
+0

過濾器我不認爲會工作,因爲我希望列表視圖上預先選擇的記錄被傳送到新頁面,以便我可以遍歷它們。 – Prometheus

+0

那麼可能你可以在session中設置queryset,那怎麼樣 – Rohan