繁体   English   中英

不能在 Django 后添加更多参数

[英]Can not put more parameters in post Django

我有一个问题,我收到一个错误post() missing 1 required positional argument: 'pk'

当我在其中添加 slug 时发生了这种情况。 有什么解决方法吗? 我将不胜感激任何帮助。

def post(self, request, pk, username, slug):
          if 'delete' in self.request.POST:
             Item.objects.get(id=pk).delete()
             print('deleted')
             return redirect('home-page')
          if 'add' in self.request.POST:
             form = ItemCreationForm(self.request.POST)
             if form.is_valid():
                form.save()
                name = form.cleaned_data.get('itemName')
                item = Item.objects.create(itemName=name)
                card =  Card.objects.get(user=self.request.user, slug=self.kwargs.get('slug'))
                card.cardItems.add(item)
                return redirect('todo-page', username=self.request.user.username, slug=self.kwargs.get('slug'))

网址.py

path('', Home.as_view(), name='home-page'),
path('todo/<str:username>/<slug:slug>', TodoView.as_view(), name='todo-page'),
path('sign-up', Signup.as_view(), name="sign-up-page"),
path('logout', views.logout_view, name='logout-page'),
path('login', views.loginView, name='login-page'),
path('profile/<str:pk>', ProfileView.as_view(), name='profile-page')

*添加网址

这是因为你的 url 还没有准备好接收 pk,你需要做类似的事情

path('todo/<int:pk>/<str:username>/<slug:slug>', TodoView.as_view(), name='todo-page')

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM