> Hi,
> i have the below that im thought would be the best approach to have a
> add contact page on my app:
>
> class ContactForm(ModelForm):
> class Meta:
> model = Contacts
> fields = ('contact_type', 'firstname', 'surname', 'notes')
>
> def addcontact(request, request_id=0,
> template_name='addcontact.html'):
> if request.POST:
> form = ContactForm(request.POST)
> form.save()
> request_id = form.id
> # If the save was successful, redirect to another page
> redirect_url = reverse(addcontact, args=request_id)
> return HttpResponseRedirect(redirect_url)
> else:
> form = ContactForm()
> return render_to_response(template_name, {
> 'form': form, }, context_instance=RequestContext(request))
>
> i thought this would be the correct way to return the id of the newly
> inserted record based on the 1st page of the tutorial, but im getting
> the error: "'ContactForm' object has no attribute 'id'
> Although it currently just loads the same page, the eventual plan is
> to redirect to a url like /contacts/viewcontact/PRIMARYKEY
>
> i saw something similar in the admin "save and continue" where it
> retirects using the pk, so thought there would be an obvoius answer im
> missing. Would appreciate it if it could be pointed out what im doing
> wrong.
>
> Thank you,
>
> Alan
You're almost there. The thing to remember is that `form.save()`
returns an instance of the model, and it's that returned value - not
the form itself - that gets the id. So you need:
new_instance = form.save()
request_id = new_instance.id
--
DR.
--
You received this message because you are subscribed to the Google Groups "Django users" group.
To post to this group, send email to django-users@googlegroups.com.
To unsubscribe from this group, send email to django-users+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/django-users?hl=en.
No comments:
Post a Comment