Я искал googled, пытаясь понять и понять, как это работает, но я до сих пор не понял это совершенно правильно. То, что я хочу сделать, это передать значение в форму, чтобы затем использовать для запроса. У меня есть переменная сеанса, называемая menu_term, которая определяет выбор в форме.Передача значений в формы django
из views.py
def manage_groups(request):
form = CourseGroupForm(request,current_term=request.session.get('menu_term'))
return render_to_response("accounts/group_management.html", {'form':form}, context_instance=RequestContext(request))
из forms.py
class CourseGroupForm(ModelForm):
def __init__(self, current_term, *args, **kwargs):
super(CourseGroupForm, self).__init__(*args, **kwargs)
courseslist = Course.objects.filter(term=current_term, num_in=settings.LAB_COURSES).order_by('description').distinct();
print(courseslist)
self.fields['courses'].queryset = forms.ChoiceField(label='Select Course', choices=courseslist)
class Meta:
model = CourseGroup
fields = ['name','courses'];
Ошибка я получаю:
__init__() got multiple values for keyword argument 'current_term'
В пользу кого-либо другого наступающем через это, каковы правильные способы определения формы, которая принимает значение, переданное извне?
Спасибо, Доброго дня MJ
Вы также можете позвонить 'del' на kwarg: "del kwargs ['current_term']", чтобы удалить его. – bmhkim
Также укажите, что эта строка «self.fields ['courses»]. Queryset = forms.ChoiceField (label =' Select Course ', choice = classeslist) "неверно. Он назначает поле, где должен быть задан запрос – Alvaro