Невозможно поместить больше параметров в пост 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'))
urls.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')