【问题标题】:I can't get return super().form_valid(form) to work我无法让 return super().form_valid(form) 工作
【发布时间】:2020-05-08 07:41:54
【问题描述】:

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

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

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)

【问题讨论】:

    标签: python django python-3.x forms django-forms


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-09-02
      • 2015-05-20
      • 2015-10-22
      • 2023-03-24
      • 2017-11-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多