Я обычно в конструкторе формы меняю. Там в self.fields все поля лежат
и можно переопределить их, или поменять что-то.
Кстати я тоже. Выглядит это вот так примерно.
class Edit_Group_Form(forms.ModelForm):
class Meta:
model = Groups
fields = ('group_name','headman')
def __init__(self, *args, **kwargs):
super(Edit_Group_Form, self).__init__(*args, **kwargs)
gr=Groups.objects.get(now_used=True)# группа, с кот. сейчас идет работа
students_set=gr.students_set.all()
self.fields['headman'].queryset=students_set # в выпадающем списке будут только студенты выбранной группы
Тут форма для редактирования информации о студенческой группе. Староста выбирается из студентов этой группы. (headman)