2013-09-09 7 views
0

Я использую пользовательский Modelchoicefield класс для того, чтобы получить полные имена в составе группы пользователей, а не их имен пользователей:Джанго: пользовательские виджеты в пользовательском modelchoicefield

class UserModelChoiceField(forms.ModelChoiceField): 
    def label_from_instance(self, obj): 
     return "%s" % (obj.get_full_name()) 

В форме, я тогда звоните этот класс до определения виджетов для других полей в «класса Meta»:

tutor = UserModelChoiceField(User.objects.filter(groups__name='teachers')) 

есть ли способ, чтобы добавить виджет в «Репетитор» -поля? Я хотел бы добавить «class = 'form-control» в вывод HTML.

Спасибо, Tobi

ответ

0

Я думаю, что будет делать:

tutor = UserModelChoiceField(
    User.objects.filter(groups__name='teachers') 
    widget=Select(attrs={'class': 'form-control'}) 
) 

Хотя, если вы собираетесь использовать самозагрузки в большем количестве мест, вы должны рассмотреть хрустящую-форму или аналогичную библиотеку.

+0

Спасибо - мог подумать об этом сам, но почему-то мой разум был заблокирован. Это решение действительно работает (добавляет запятую между строками). – Tobi