首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

一旦用户注册,如何通过django-admin面板批准或拒绝用户?

在Django中,可以通过自定义admin面板来批准或拒绝用户注册。下面是一种实现方式:

  1. 首先,在Django项目的主目录下创建一个名为admin.py的文件。
  2. admin.py文件中导入必要的模块和类:
代码语言:txt
复制
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
  1. 创建一个自定义的UserAdmin类,继承自UserAdmin
代码语言:txt
复制
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'
  1. admin.py文件中注册自定义的UserAdmin类:
代码语言:txt
复制
admin.site.unregister(User)
admin.site.register(User, CustomUserAdmin)
  1. 在Django项目的urls.py文件中添加URL路由:
代码语言:txt
复制
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'),
]
  1. 创建对应的视图函数,用于处理批准或拒绝用户的请求:
代码语言:txt
复制
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面板轻松管理用户注册,并根据需要批准或拒绝用户。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

领券