def __init__(self, *args, **kwargs): current_room = kwargs.pop('current_room', None) super(MemberInfoForm, self).__init__(*args, **kwargs) self.fields['room'].choices = free_rooms_choices(current=current_room) if current_room: self.fields['room'].initial = current_room return
def add(request, room=None): add_form = MemberInfoForm(request.POST or None) add_form.fields['room'].choices = free_rooms_choices() if room: try: room = Room.objects.get(Q(name=room)&Q(member=None)) add_form.fields['room'].initial = room messages.info(request, u"La chambre {} a été présélectionnée".format(room)) except Room.DoesNotExist: pass if request.method == 'POST': if add_form.is_valid(): member = add_form.save(commit=False) member.save() return redirect("ogre_member_show", uuid=member.uuid) return render(request, "ogre/member/add.html", { 'form': add_form, })