2012-07-23 10 views
5

W moim ModelForm stworzyłem rozwijanie, które nie jest bezpośrednio związane z tym modelem. Dlatego przekazuję w zapytaniu dla niego przy tworzeniu.Jak zdefiniować atrybuty na formularzach. Modelodbroj.pl?

class CallsForm(ModelForm): 
    def __init__(self, company, *args, **kwargs): 
     super(CallsForm, self).__init__(*args, **kwargs)   
     self.fields['test_1'].queryset = company.deal_set.all() 

    test_1  = forms.ModelChoiceField(queryset = '') 

Działa to dobrze. Jak jednak określić dla niego niektóre atrybuty?

Dla pozostałych modeli związana-widgetów Zazwyczaj robię to w Meta:

class Meta: 
     model = Conversation 
     widgets = { 
        'notes': forms.Textarea(attrs={'class': 'red'}),      
        }     

Ale przesłanianie go w moim przypadku nie miałoby sensu.

Próbowałem ustawić atrybuty podczas tworzenia instancji bez żadnego szczęścia.

test_1  = forms.ModelChoiceField(attrs={'class':'hidden'}, queryset = '') 

ale mówi: __init__() got an unexpected keyword argument 'attrs'

pewnością musi istnieć sposób ...

Odpowiedz

22

attrs jest ważna tylko na widżety, a nie polami. Wypróbuj:

test_1 = forms.ModelChoiceField(queryset = '', widget=forms.Select(attrs={'class':'hidden'})) 
Powiązane problemy