python - /blog/post/comment/update/18/ 处的 ModuleNotFoundError 没有名为“test-post-ecomon”的模块
问题描述
我的网站有一个博客部分,我做了一个 CommentUpdateView,在提交表单后它给了我这个错误
ModuleNotFoundError at /blog/post/comment/update/18/
No module named 'test-post-ecomon'
但我不明白为什么因为这篇文章存在并且我在我的联系人模型中实现了 get_absolute_url 并且它应该可以正常工作?当我创建新评论时,它可以工作。
看法
class CommentUpdateView(LoginRequiredMixin, UpdateView):
model = Comment
form_class = CommentUpdateForm
template_name = 'blog/update_comment.html'
def form_valid(self, form):
form.instance.author = self.request.user
return super().form_valid(form)
def get_queryset(self, *args, **kwargs):
return super().get_queryset(*args, **kwargs).filter(author=self.request.user)
模型
class Comment(models.Model):
author = models.ForeignKey(User, on_delete=models.CASCADE)
post = models.ForeignKey(Post, on_delete=models.CASCADE, related_name='comments')
reply = models.ForeignKey('self', on_delete=models.CASCADE, null=True, related_name='replies')
content = models.TextField(_('Content'))
posted_date = models.DateTimeField(_('Posted Date/Time'), auto_now_add=True)
updated_date = models.DateTimeField(_('Updated Date/Time'), auto_now=True)
def __str__(self):
return f'{self.author.username} - {self.post.title}'
def get_absolute_url(self):
return reverse('post', self.post.slug)
网址
path('post/<slug:slug>/', PostDetailView.as_view(), name='post'),
path('post/comment/update/<int:pk>/', CommentUpdateView.as_view(), name='update-comment'),
解决方案
尝试像这样重写你的get_absolute_url
:
def get_absolute_url(request):
return reverse('post', args=(self.post.slug, ))
PS您真的不想在更新视图中重新分配用户,因为它会降低性能而基本上什么都不做
推荐阅读
- excel - 查找并替换列宏中每出现一次的单词
- cplex - 最少两个约束
- css - 线性渐变 CSS 在 ReactJS 中不起作用
- java - 为什么递归循环中的局部变量被覆盖?Java 的 For 循环中的递归循环
- android - Android电报编译失败,无能为力
- django - Django models.ImageField 不验证图像文件(由 axios 发送的数据)
- bash - 如何将这几个 dockerfile 命令转换成 linux bash 命令
- python - 迭代停止短
- windows - 调试时重命名控制台窗口
- acumatica - 是否可以复制课程以制作标准 Acumatica 功能的自定义副本?