我已經搜索瞭解並瞭解它是如何工作的,但我仍然沒有把握好這一點。我想要做的是將一個值傳遞給一個表單然後用於查詢。我有一個名爲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
你也可以在kwarg上調用'del':「del kwargs ['current_term']」將其刪除。 – bmhkim
另外,指出這行「self.fields ['courses']。queryset = forms.ChoiceField(label ='Select Course',choices = courseslist)」是錯誤的。他正在分配一個應該給出查詢集的字段 – Alvaro