Я создаю форму (не modelForm), где я бы хотел использовать виджет SelectMultiple Widget, чтобы отображать варианты на основе запроса, выполненного во время инициализации формы.Динамический выбор для Django SelectMultiple Widget
Я могу придумать несколько способов сделать это, но я не совсем четко понимаю, как это сделать. Я вижу разные варианты.
Я получаю «выбор», я должен перейти к виджету в форме init, но я не уверен, как я должен их передавать.
class NavigatorExportForm(forms.Form):
def __init__(self,user, app_id, *args,**kwargs):
super (NavigatorExportForm,self).__init__(*args,**kwargs) # populates the form
language_choices = Navigator.admin_objects.get(id=app_id).languages.all().values_list('language', flat=True)
languages = forms.CharField(max_length=2, widget=forms.SelectMultiple(choices=???language_choices))
Я видел упоминание о ModelMultipleChoiceField, но не был уверен в использовании. Попытка это прямо сейчас. Благодарю. – philgo20
отлично работает и кажется немного чище, чем мой. еще раз спасибо – philgo20
mmm На самом деле, я получаю объект «AttributeError: 'unicode» при атрибуте формы не имеет атрибута «get». Моя языковая модель действительно поле символов ... – philgo20