I bought and read the book Two Scoops Django: Best Practices for Django 1.5, and it has an example of class-based views. After this implementation, I get an error after submitting the form.
ImproperlyConfigured at /NonProfitCreate/ No URL to redirect to. Either provide a url or define a get_absolute_url method on the Model
After researching, I came up with this Django issue - Class Based Generic View - "No URL to redirect to"
I want get_absolute_url to work in my program
these are my forms.py
#!/usr/bin/env python # -*- coding: utf-8 -*- # # npp/forms.py from django import forms from .models import NonProfit class NonProfitCreateForm(forms.ModelForm): class Meta: model = NonProfit fields = ("name","contact_name","email","phone","address","image","tags",) def __init__(self, *args, **kwargs): self.request = kwargs.pop('request', None) return super(NonProfitCreateForm, self).__init__(*args, **kwargs) def save(self, *args, **kwargs): kwargs['commit']=False obj = super(NonProfitCreateForm, self).save(*args, **kwargs) if self.request: obj.user = self.request.user obj.save() class NonProfitUpdateForm(NonProfitCreateForm): class Meta: model = NonProfit
these are my models.py and views files
from django.db import models from django.contrib.auth.models import User from django.db.models import permalink from django_extensions.db.fields import AutoSlugField from django.contrib import admin from django.core.urlresolvers import reverse import tagging from tagging.models import Tag
urls.py
url( regex=r'^NonProfitCreate/', view=NonProfitCreateView.as_view(), name='NonProfitCreate', ), url( regex=r'^NonProfit/(?P<slug>[-\w\d]+)/', view=NonProfitDetailView.as_view(), name='NonProfit' )
this is my stack, django bindings are highlighted, and
/home/talisman/projects/Auction/Auction/views.py in form_valid return super(ActionMixin, self).form_valid(form) EEnvironment: Request Method: POST Request URL: http://127.0.0.1:8000/NonProfitCreate/ Django Version: 1.5.1 Python Version: 2.7.4 Installed Applications: ('django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions', 'django.contrib.sites', 'django.contrib.messages', 'django.contrib.staticfiles', 'django.contrib.admin', 'django.contrib.admindocs', 'django.contrib.comments', 'django.contrib.sitemaps', 'zinnia', 'tagging', 'mptt', 'south', 'misc', 'adm', 'registration', 'npp', 'blogs') Installed Middleware: ('django.middleware.common.CommonMiddleware', 'django.contrib.sessions.middleware.SessionMiddleware', 'django.middleware.csrf.CsrfViewMiddleware', 'django.contrib.auth.middleware.AuthenticationMiddleware', 'django.contrib.messages.middleware.MessageMiddleware', 'django.middleware.clickjacking.XFrameOptionsMiddleware') Traceback: File "/home/talisman/virt_env/Auction/local/lib/python2.7/site-packages/Django-1.5.1-py2.7.egg/django/core/handlers/base.py" in get_response 115. response = callback(request, *callback_args, **callback_kwargs) File "/home/talisman/virt_env/Auction/local/lib/python2.7/site-packages/Django-1.5.1-py2.7.egg/django/views/generic/base.py" in view 68. return self.dispatch(request, *args, **kwargs) File "/home/talisman/virt_env/Auction/local/lib/python2.7/site-packages/django_braces-1.0.0-py2.7.egg/braces/views.py" in dispatch 98. **kwargs) File "/home/talisman/virt_env/Auction/local/lib/python2.7/site-packages/Django-1.5.1-py2.7.egg/django/views/generic/base.py" in dispatch 86. return handler(request, *args, **kwargs) File "/home/talisman/virt_env/Auction/local/lib/python2.7/site-packages/Django-1.5.1-py2.7.egg/django/views/generic/edit.py" in post 199. return super(BaseCreateView, self).post(request, *args, **kwargs) File "/home/talisman/virt_env/Auction/local/lib/python2.7/site-packages/Django-1.5.1-py2.7.egg/django/views/generic/edit.py" in post 165. return self.form_valid(form) File "/home/talisman/projects/auction/Auction/views.py" in form_valid 54. return super(ActionMixin, self).form_valid(form) File "/home/talisman/virt_env/Auction/local/lib/python2.7/site-packages/Django-1.5.1-py2.7.egg/django/views/generic/edit.py" in form_valid 128. return super(ModelFormMixin, self).form_valid(form) File "/home/talisman/virt_env/Auction/local/lib/python2.7/site-packages/Django-1.5.1-py2.7.egg/django/views/generic/edit.py" in form_valid 65. return HttpResponseRedirect(self.get_success_url()) File "/home/talisman/virt_env/Auction/local/lib/python2.7/site-packages/Django-1.5.1-py2.7.egg/django/views/generic/edit.py" in get_success_url 119. "No URL to redirect to. Either provide a url or define" Exception Type: ImproperlyConfigured at /NonProfitCreate/ Exception Value: No URL to redirect to. Either provide a url or define a get_absolute_url method on the Model.