获取用户在django rest框架中使用信号执行的所有操作

获取用户在django rest框架中使用信号执行的所有操作,django,python-3.x,django-rest-framework,action,django-signals,Django,Python 3.x,Django Rest Framework,Action,Django Signals,我对Python非常陌生。我用用户的所有数据创建了一个模型,并创建了注册用户、登录应用程序、删除一个用户和创建一组用户的信号。我必须获得用户对特定域执行的所有操作。请帮帮我。 先谢谢你 下面是编写的代码 class User(models.Model): MALE = '1' FEMALE = '2' GENDER = ( (MALE, _("Male")), (FEMALE, _("Female")) ) ADMIN = "1" ADVERTISER = "2" USER

我对Python非常陌生。我用用户的所有数据创建了一个模型,并创建了注册用户、登录应用程序、删除一个用户和创建一组用户的信号。我必须获得用户对特定域执行的所有操作。请帮帮我。 先谢谢你

下面是编写的代码

class User(models.Model):

MALE = '1'
FEMALE = '2'
GENDER = (
    (MALE, _("Male")),
    (FEMALE, _("Female"))
)

ADMIN = "1"
ADVERTISER = "2"
USER = "3"

ROLE = (
    (ADMIN, _("Admin")),
    (ADVERTISER, _("Advertiser")),
    (USER, _("User"))
)
email = models.EmailField(_('Email address'), max_length=254, unique=True) name = models.CharField(_('Name'), max_length=30, null=True, blank=True) screen_name = models.CharField(max_length=255, null=True, blank=True)
date_joined = models.DateTimeField(_('date joined'), default=timezone.now)
    dob = models.DateField(null=True, blank=True)
    gender =  models.CharField(
        verbose_name=_("select gender."),
        max_length=1,
        choices=GENDER
    )
role = models.CharField(
        max_length=1,
        choices=ROLE,
        verbose_name=_("Select Role.")
    )

@receiver(post_save, sender=User)
def create_profile_for_new_user(sender, created, instance, **kwargs):
    if created:
        instance = User
        actions = action.send(instance, verb='user created')
        profile = User(user=instance, actions=actions, object_id=instance.id, object_repr=instance.name)
        profile.save()

@receiver(post_delete, sender=User)
def delete_profile_for_new_user(sender, deleted, instance, **kwargs):
    if deleted:
        instance = User
        actions = action.send(instance, verb='user_deleted')
        profile = (user=instance,actions=actions)
        profile.delete()

@receiver(user_logged_in)
def sig_user_logged_in(sender, user, request, **kwargs):
    logger = logging.getLogger(__name__)
    logger.info("user logged in: %s at %s" % (user, request.META['REMOTE_ADDR']))

@receiver(user_logged_out)
def sig_user_logged_out(sender, user, request, **kwargs):
    logger = logging.getLogger(__name__)
    logger.info("user logged out: %s at %s" % (user, request.META['REMOTE_ADDR']))

@receiver(post_save, sender=User)
def create_group_for_users(sender, created, instance, **kwargs):
    if created:
        profile = Group(user=instance)
        profile.save()

你为什么使用信号?您可以创建一个中间件类来记录所有API操作,包括用户创建。为什么要使用信号?您可以创建一个中间件类来记录所有API操作,包括用户创建。