Утверждать или отклонять пользователей через панель 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')