а что происходит в этой строке ?
self.ps_id = kwargs.pop('ps_id', None)
это смешались в кучу люди, кони - я кусок скопипастил с более расширенного инита и не удалил.
Данная строка нужна для инита формы в случае, если она используется не только с параметром, а и без:
form = ProgramForm( request.GET or None, ps_id = 1)
и чтобы если нет параметра в вызове
form = ProgramForm( request.GET or None)
можно было при init обработать значение по-умолчанию.
def __init__(self, *args, **kwargs):
ps_id = kwargs.pop('ps_id', None) # что происходит в этой строке ?
super(ProgramForm, self).__init__(*args, **kwargs)
if ps_id:
self.fields['norm_act'].queryset = [нужная выборка]
else:
...