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
django
|django-forms
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