2016-09-03 47 views
0

我在爲多個選擇窗體獲取選項時遇到了問題。我試圖從couchdb中獲得選擇。它成功地打印出來到控制檯它:
[u'c6570a56173b637d66ba2a2e390271fe 'u'Rambler '],[u'c6570a56173b637d66ba2a2e3902ad1f',u'BBC']
,但它不會出現在模板。
下面是views.py
無法從django中獲取多個選擇的選項

# Retrieving a FiltersForm 
form = FiltersForm(request.POST or None, request=request) 

這有什麼錯我的表格形式的我forms.py

sel = [] 


# FiltersForm is print out title, two select elements and an one required textinput's field 
class FiltersForm(forms.Form): 
    title = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'A title'}), label='Title') 
    item = forms.ChoiceField(widget=forms.Select(attrs={'class': 'selectpicker'}), required=False, label='If', 
          choices=items) 
    action = forms.ChoiceField(widget=forms.Select(attrs={'class': 'selectpicker'}), required=False, label='is', 
           choices=actions) 
    word = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'a word'})) 
    link = forms.URLField(max_length=255, widget=forms.URLInput(attrs={'value': 'http://'})) 
    source = forms.MultipleChoiceField(widget=forms.SelectMultiple(attrs={'class': 'selectpicker'}), choices=sel) 

    def __init__(self, *args, **kwargs): 
     request = kwargs.pop('request', None) 
     response = request.db.view('subscriptions/source', key=str(request.user)).rows 
     for item in response: 
      sel.append([item.id, item.value['title']]) 
     print sel 
     super(FiltersForm, self).__init__(*args, **kwargs) 

實例?

回答

1

您在__init__方法中定義了一個名爲sel的局部變量,但與您用於填充表單的全局級名稱相同的變量沒有任何關係。你會實際上有與該方法中新的值替換選擇:

self.fields['source'].choices = sel 
+0

我已經取代它,我已經得到了一個錯誤:「FiltersForm」對象有沒有屬性「域」 –

+0

需要去超級電話。 –

+0

它發送一個空的列表。也許我做錯了什麼?你能完成我的方法嗎? –

相關問題