Reputation: 209
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
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