[Django]-Django – Class Based Generic View – "No URL to redirect to"

79👍

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'))

23👍

you can also try to define get_absolute_url in your models. For example

class Something(models.Model):
    name = models.CharField(max_length=50, verbose_name='name')

    class Meta:
        pass

    def get_absolute_url(self):
        return u'/some_url/%d' % self.id 
👤zzart

1👍

Add in views:

def form_valid(self, form):

   return self.render_to_response(self.get_context_data(form=form))

0👍

views.py/

from django.views.generic import CreateView
from .models import myModel

class createView(CreateView):
    model = myModel
    fields = ['your fields', ...'']

    def get_success_url(self):
        return reverse('some_url')

urls.py/ (of your app)

from django.urls import path
from . import views

urlpatterns = [
    path('create/', views.createView.as_view(), name='create') 
] 

-1👍

class PostDeleteView(LoginRequiredMixin, UserPassesTestMixin, DeleteView):
    model = Post
    success_url = '/'
    def test_func(self):
        post = self.get_object()
        if self.request.user == post.author:
            return True
        return False

Leave a comment