python - how to send success message if we use django generic views -
i new django (1.2.4). have created crud generic views. how can show "the student added successfully" when student created using django's messaging framework?
as far know, there isn't straightforward way of doing using traditional generic views. i've felt documentation on generic views pretty lacking , never used them.
in theory use decorator making assumption redirect meant successful submission.
so write (none of code has been tested):
urls.py:
try: functools import wraps except importerror: django.utils.functional import wraps django.http import httpredirectresponse django.contrib import messages django.views.generic import * def add_message(success_message=none): def decorator(func): def inner(request, *args, **kwargs): resp = func(request, *args, **kwargs) if isinstance(resp, httpredirectresponse): messages.success(request, message) return resp return wraps(func)(inner) return decorator student_info_edit = { 'template_name': 'myapp/student/form.html', 'template_object_name': 'student', 'form_class': studentform, } student_info_new = { 'template_name': 'myapp/student/form.html', 'form_class': studentform, 'post_save_redirect': '/myapp/students/', } urlpatterns += patterns('', url(r'^students/$', list_detail.object_list, { 'queryset': student.objects.all() }, name="students"), url(r'^students/(?p<object_id>\d+)/$', add_message("student record updated successfully")(create_update.update_object), student_info_edit, name="student_detail"), url(r'^students/new$', add_message("the student added successfully.")(create_update.create_object), student_info_new, name="student_new"), )
all said , coded, django 1.3 introduced class-based generic views, if you're interested in moving onto django 1.3 should those. may allow more customization, not sure.
in long run see benefit form using generic views, , goes double things add/update.
Comments
Post a Comment