Django Initial for a ManyToMany Field

Posted by gramware on Stack Overflow See other posts from Stack Overflow or by gramware
Published on 2010-04-03T23:33:43Z Indexed on 2010/04/03 23:43 UTC
Read the original article Hit count: 298

Filed under:
|

I have a form that edits an instance of my model. I would like to use the form to pass all the values as hidden with an inital values of username defaulting to the logged in user so that it becomes a subscribe form. The problem is that the normal initial={'field':value} doesn't seem to work for manytomany fields. how do i go about it?

my views.py

@login_required
def event_view(request,eventID):
    user = UserProfile.objects.get(pk=request.session['_auth_user_id'])
    event = events.objects.get(eventID = eventID)
    if request.method == 'POST':
        form = eventsSusbcribeForm( request.POST,instance=event)
        if form.is_valid():
            form.save()
            return HttpResponseRedirect('/events/')

    else:
        form = eventsSusbcribeForm(instance=event)

    return render_to_response('event_view.html', {'user':user,'event':event, 'form':form},context_instance = RequestContext( request ))

my forms.py

class eventsSusbcribeForm(forms.ModelForm):
    eventposter = forms.ModelChoiceField(queryset=UserProfile.objects.all(), widget=forms.HiddenInput())
    details = forms.CharField(widget=forms.Textarea(attrs={'cols':'50', 'rows':'5'}),label='Enter Event Description here')
    date = forms.DateField(widget=SelectDateWidget())


    class Meta:
        model = events
        exclude = ('deleted')

    def __init__(self, *args, **kwargs):
        super(eventsSusbcribeForm, self).__init__(*args, **kwargs)
        self.fields['username'].initial = (user.id for user in UserProfile.objects.filter())

© Stack Overflow or respective owner

Related posts about django

Related posts about django-forms