首页 > 解决方案 > 我无法让 return super().form_valid(form) 工作

问题描述

我已经解决了我的问题并在下面提供了我的解决方案。

当我创建或更新帖子时,更改会保存到站点数据库中。但是单击提交按钮后,我收到一条错误消息。

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

我想被重定向到当前 URL。我认为代码行return super().form_valid(form)暗示了这一点。

我可以这样做success_url = '/',但理想情况下我不想返回主页。

class PostCreateView(LoginRequiredMixin, CreateView):
        model = Post
        fields = ['title', 'content']

        def form_valid(self, form):
            form.instance.author = self.request.user
            return super().form_valid(form)

标签: pythondjangopython-3.xformsdjango-forms

解决方案


models.py 中的代码是错误的,我缺少缩进。

我的网站使用此代码运行良好 -

class Post(models.Model):
    title = models.CharField(max_length=100)
    content =  models.TextField()
    date_posted = models.DateTimeField(default=timezone.now())
    author = models.ForeignKey(User, on_delete=models.CASCADE)


    def __str__(self):
        return self.title 

    def get_absolute_url(self):
        return reverse('post-detail', kwargs={'pk':self.pk})

推荐阅读