更新和删除时如何在一个url链接中发送两个pk

Posted

技术标签:

【中文标题】更新和删除时如何在一个url链接中发送两个pk【英文标题】:How to send two pk in one url link when Update and Delete 【发布时间】:2021-09-09 07:49:17 【问题描述】:

我极好的互联网朋友。 作为初学者,我一直在创建一个简单的 pfc 计算器 Django 应用程序。 在制作时,我遇到了一个错误,即“必须使用 URLconf 中的对象 pk 或 slug 调用通用详细视图 CommentUpdate。” 我什至不知道为什么会出现这个错误,因为我认为我在 urls.py 中的方式是正确的。

如果您知道如何解决此错误,请在下方留下您的评论。 任何 cmet 帮助我,并提前感谢您的时间!


# urls.py
  # path('blog/<int:pk>/comment/', views.add_comment, name='add_comment'),

  path('blog/<int:blog_pk>/comment/update/<int:comment_pk>/', CommentUpdate.as_view(), name='comment_update'),
  path('blog/<int:blog_pk>/comment/delete/<int:comment_pk>/', CommentDelete.as_view(), name='comment_delete'),

            <div class="comment-right">
              % if request.user == blog.user %
                <a href="% url 'comment_update' blog.id comment.id %" class="far fa-edit"></a>
                <a href="% url 'comment_delete' blog.id comment.id %" class="far fa-trash-alt"></a>
              % endif %
            </div>
# view.py

class CommentUpdate(LoginRequiredMixin, UpdateView):
  model = Comment
  template_name = 'blog/comment_update.html'
  fields = ['text',]
  success_url = reverse_lazy('latest_blogs')
  def get_context_data(self, **kwargs):
    context = super().get_context_data(**kwargs)
    context['comment'] = Comment.objects.all().fliter(id=self.request.id)
    return context

#models.py

class Comment(models.Model):
    blog = models.ForeignKey(Blog, on_delete=models.CASCADE, related_name='comments')
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='comments', max_length=200)
    text = models.TextField()
    created = models.DateTimeField(auto_now_add=True)
    # approved_comment = models.BooleanField(default=False)

    # def approve(self):
    #     self.approved_comment = True
    #     self.save()

    def __str__(self):
        return self.text

【问题讨论】:

【参考方案1】:

您在视图函数中只接受一个参数。 制作两个参数并尝试打印它们,看看你在哪个变量中得到了什么参数。

【讨论】:

很抱歉我提出了错误的观点,所以我改变了他们。而且,我一直在努力,我仍然有一个错误“必须使用 URLconf 中的对象 pk 或 slug 调用通用详细视图 CommentUpdate。”我对此一无所知。 创立相关问题***.com/questions/11494483/…

以上是关于更新和删除时如何在一个url链接中发送两个pk的主要内容,如果未能解决你的问题,请参考以下文章

CKEditor 5如何从任何小部件/模型/视图中获取单击,更新和删除的事件

在 Django 中,我如何编写一个 url.py,其中 users/self/ 与 users/<pk>/ 相同,其中 <pk> 是您登录的用户 pk?

Kendo Grid 如何更新、创建、删除数据源

如何在 SQL Server 2008 中通过单个查询更新两个表 [重复]

两个关联的表格如何取消关联?

使用scrapy爬行时如何跳过某些文件类型?