Утверждать или отклонять пользователей через панель django-admin после того, как пользователь зарегистрировался

Как новичок, я не знаю, как это сделать. Я создал одну модель пользователя для пользователей. после того как пользователь зарегистрировался, он должен попасть на одобрение администратора. В админ панели как сделать две кнопки одобрить или отклонить. Если администратор нажал на кнопку одобрить, то только пользователь должен войти на сайт. если администратор отклонит, то пользователь не сможет войти. Мне нужна помощь.

models.py

 class Vendor(models.Model):
      name = models.CharField(max_length=255)
     created_at = models.DateTimeField(auto_now_add=True)
     created_by = models.OneToOneField(User, related_name='vendor', on_delete=models.CASCADE)
     id = models.AutoField(primary_key=True, editable=False)
     vendorid= models.CharField(max_length=100, unique=True)

     class Meta:
         ordering = ['name']

     def __str__(self):
    return self.name

def save(self, *args, **kwargs):
    super().save(*args, **kwargs)
    if not self.vendorid:                             # if vendorid of the instance is blank
        self.vendorid = "VEN_ID" + str(self.id)       # generating the vendorid and allocating the value
        self.save()                                   # saving the instance

def __str__(self):
    return self.vendorid

В Django Admin есть понятие действий. Я думаю, это поможет - Django Admin actions

models.py

from django.db import models

STATUS_CHOICES = [
  ('d', 'Draft'),
  ('p', 'Published'),
  ('w', 'Withdrawn'),
]

class Article(models.Model):
  title = models.CharField(max_length=100)
  body = models.TextField()
  status = models.CharField(max_length=1, choices=STATUS_CHOICES)

  def __str__(self):
    return self.title

admin.py

class ArticleAdmin(admin.ModelAdmin):
  ...

  actions = ['make_published']

  @admin.action(description='Mark selected stories as published')
  def make_published(self, request, queryset):
     queryset.update(status='p')
Вернуться на верх