killerbees
killerbees

Reputation: 209

del_user() missing 1 required positional argument: 'username' - Django

I'am looking a solution for my problem. I have a something like a my own admin panel, and I want to create a users managment system. The first I want to create a definition to delete the registered users. But when I try to execute this def, the system responde me a error :

del_user() missing 1 required positional argument: 'username'

My views.py is :

from django.shortcuts import render
from django.contrib.auth import authenticate, login
from django.contrib.auth.models import User
from .forms import LoginForm, UserRegistrationForm
from django.http import HttpResponse
from django.contrib.auth.decorators import login_required
from django.contrib import messages
...
def del_user(request, username):
    try:
        user = User.objects.get(username=username)
        user.delete(user)
        message.succes(request, 'Pomyślnie usunięto')
    except User.DoesNotExist:
        message.error(request, 'Użytkownik nie istnieje')
    return render(request, 'konto/settings.html')

And I created a url to del_user.html page

**urls.py**

from django.urls import path
from django.contrib.auth import views as auth_views
from .views import dashboard, register,settings, del_user
...
    path('del_user/', del_user, name='del_user'),
...

I don't understand this error why is not working. Anybody help?

Upvotes: 1

Views: 961

Answers (1)

Astik Anand
Astik Anand

Reputation: 13057

You need to pass username of user to be deleted in url

 path('del-user/<slug:username>', del_user, name='del_user'),

Upvotes: 2

Related Questions