Django - Class Based Generic View - "No URL to redirect to"

Pierre de LESPINAY picture Pierre de LESPINAY · Jun 7, 2011 · Viewed 37.5k times · Source

I'm using the generic CreateView like:

#urls.py

from django.conf.urls.defaults import *
from django.views.generic import CreateView
from content.models import myModel

urlpatterns = patterns('myApp.views',
    (r'myCreate/$', CreateView.as_view(model=myModel)),
)

With a mymodel_form.html template like:

<form method="post" action="">
{% csrf_token %}
  {{ form.as_p }}
  <input type="submit" value="Submit" />
</form>

When I submit my form, the new object is created but I get the error

ImproperlyConfigured at ...

No URL to redirect to. Either provide a url or define a get_absolute_url method on the Model.

How can I specify the url to redirect on success ?

Answer

NickAldwin picture NickAldwin · Jun 7, 2011

Have you tried passing in success_url? e.g.

CreateView.as_view(model=myModel, success_url="/success/")

or if you want to redirect to a named view:

CreateView.as_view(model=myModel, success_url=reverse('success-url'))