2011-06-29 15 views
0

我想在選擇對象之前(在管理員之外)進行更改之前創建確認頁面。對象可以是不同的模型(但每次只有一個模型)。Django - 更改不同型號之前的確認頁面

這很像在刪除之前在管理中所做的操作。但管理代碼很複雜,我還沒有掌握如何在那裏完成。

首先,我有整體形式過濾不同的對象,然後我將查詢集傳遞到動作/確認頁面。我創建了一個形式工廠,這樣我可以根據不同的型號(如在另一個similiar問題在#1這裏看到的)定義不同的查詢集:

def action_factory(queryset): 
    ''' Form factory that returns a form that allows user to change status on commissions (sale, lead or click) 
    ''' 
    class _ActionForm(forms.Form): 
     items = forms.ModelMultipleChoiceField(queryset = queryset, widget=forms.HiddenInput()) 
     actions = forms.ChoiceField(choices=(('A', 'Approve'), ('D' ,'Deny'), ('W' ,'Under review'), ('C' ,'Closed'))) 
    return _ActionForm 

,我在我的視圖中使用:

context['form']=action_factory(queryset)() 

的問題在於,隱藏項目字段不會在html代碼中顯示。當我刪除HiddenInput小部件時,它會正確顯示錶單。

我不想顯示選擇字段,因爲可以有成千上萬的對象。我想要的就是「你想改變1000個對象的狀態」和一個彈出窗口和一個提交按鈕。看起來很簡單的問題,但我無法讓它工作。

如果有人有解決我目前的嘗試,我會很高興聽到他們如何做到這一點。如果有更清潔和更好的解決方案,情況會更好。

回答

0

我使用了錯誤的小部件。它應該是MultipleHiddenInput而不是HiddenInput。

相關問題