python - 我无法让 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)
解决方案
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})
推荐阅读
- javascript - Vue .sync 仅适用于 v-model,但会出现突变错误
- javascript - 有没有办法在 http 请求中组合文件?
- c++ - 模拟按键 x 毫秒
- xamarin - 无法为 UIMainStoryboardFile 实例化默认视图控制器
- python - if int(lista[2]) == 0: IndexError: list index out of range
- pandas - 得到 TypeError:字符串索引必须是带有 .apply 的整数
- django - Django 错误 - /listings/1 处的 NoReverseMatch。未找到带有参数“(”,)“的“添加评论”的反向操作。(创建评论部分)
- swift - 当您在 SKSpriteNode 上使用 SKAction 时,哪个位置值会发生变化?我将如何解释职位变化?
- excel - Excel VBA - 下载的带有 url 的 csv 文件,但它只显示 html 代码而不是 csv 文件的实际内容
- javascript - 如何在 Angular 应用程序中实现 Async 或 Promise(计算量大)