在Django中,可以通过自定义admin面板来批准或拒绝用户注册。下面是一种实现方式:
admin.py
的文件。admin.py
文件中导入必要的模块和类:from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from django.urls import reverse
from django.utils.html import format_html
UserAdmin
:class CustomUserAdmin(UserAdmin):
list_display = ('username', 'email', 'is_active', 'approve_or_reject')
def approve_or_reject(self, obj):
if obj.is_active:
return format_html('<a href="{}">Reject</a>', reverse('admin:reject_user', args=[obj.id]))
else:
return format_html('<a href="{}">Approve</a>', reverse('admin:approve_user', args=[obj.id]))
approve_or_reject.short_description = 'Approve/Reject'
admin.py
文件中注册自定义的UserAdmin类:admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
from django.urls import path
from . import views
urlpatterns = [
# ...
path('admin/approve/<int:user_id>/', views.approve_user, name='approve_user'),
path('admin/reject/<int:user_id>/', views.reject_user, name='reject_user'),
]
from django.shortcuts import redirect, get_object_or_404
from django.contrib.auth.models import User
def approve_user(request, user_id):
user = get_object_or_404(User, id=user_id)
user.is_active = True
user.save()
return redirect('admin:auth_user_changelist')
def reject_user(request, user_id):
user = get_object_or_404(User, id=user_id)
user.delete()
return redirect('admin:auth_user_changelist')
以上步骤完成后,你可以通过访问Django的admin面板来批准或拒绝用户注册。在用户列表中,你将看到一个名为"Approve/Reject"的列,点击对应的链接即可执行批准或拒绝操作。
这种方法可以帮助管理员通过Django的admin面板轻松管理用户注册,并根据需要批准或拒绝用户。
领取专属 10元无门槛券
手把手带您无忧上云