更新和删除时如何在一个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?