django - Django get_absolute_url() 似乎在评论部分不起作用
问题描述
我试图在评论后让我的用户访问文章页面,但缺少一些东西。
class Comment(models.Model):
post = models.ForeignKey(Post, related_name="comments" ,on_delete=models.CASCADE)
name = models.CharField(max_length=30)
body = RichTextUploadingField(extra_plugins=
['youtube', 'codesnippet'], external_plugin_resources= [('youtube','/static/ckeditor/youtube/','plugin.js'), ('codesnippet','/static/ckeditor/codesnippet/','plugin.js')])
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
return '%s - %s' % (self.post.title, self.name)
class Meta:
verbose_name = "comentario"
verbose_name_plural = "comentarios"
ordering = ['date_added']
def get_absolute_url(self):
return reverse('article-detail', kwargs={'pk': self.pk})
网址.py
path('article/<int:pk>/comment/', AddCommentView.as_view(), name='add_comment'),
path('article/<int:pk>', ArticleDetailView.as_view(), name="article-detail"),
path('article/edit/<int:pk>', UpdatePostView.as_view(), name='update_post'),
path('article/<int:pk>/remove', DeletePostView.as_view(), name='delete_post'),
对于 update_post,get_absolute_url() 有效。提前致谢。
解决方案
您需要传递一个属于 ArticleDetailView 模型的参数。例如,如果 ArticleDetailView 的模型是 Post:
class ArticleDetailView(DetailView):
model = Post
get_absolute_url 应该使用 post.pk:
类评论(模型。模型):
....
....
def get_absolute_url(self):
return reverse('article-detail', kwargs={'pk': self.post.pk})
在您的情况下,它不起作用,因为它使用带有文章(帖子)视图的评论 pk
推荐阅读
- c++ - 在 Eclipse 格式化程序 C++/C 中格式化空行
- sql - Oracle 12c - 如何从已删除的数据库中删除 SID
- visual-studio-code - 通过 VsCode 使用 gdbserver 从 win10 远程调试到 linux_x86_64
- sql - SQL - 如果变量不为空,则包括 where 条件
- c# - 如何通过 HTTP 从 MJPEG 中提取 JPEG?C#
- magento - Magento 1 的报告文件查看器
- powershell - 为 Active Directory 中的所有用户启用还原点的脚本
- amazon-web-services - 使用命令行参数错误创建 Cognito 测试用户
- reactjs - 单击“react-router-dom”v5 链接时,在 div 中呈现不同的组件
- java - 使用 Cplex 音乐会在 Java Eclipse 中 MIQP 到 MILP 线性化