(对不起我的英文)
只有一个问题,是否存在限制可以在Django App中创建的用户数量的方法?
我在很多地方搜索,我只找到了这个,但我在回购中看到最后一次更新是3年前https://github.com/1stvamp/django-limit-users
我不知道在django的核心是否存在任何方式,或者我是否必须覆盖某些东西!
非常感谢!
答案 0 :(得分:1)
虽然我没有时间对新的Django测试https://github.com/1stvamp/django-limit-users,但它使用django的信号朝着正确的方向前进:https://docs.djangoproject.com/en/dev/ref/signals/
例如,您可以编写pre_save
或post_save
处理程序,并将其连接到保存用户模型之前/之后发出的信号。
一个简单的post_save
处理程序可能如下所示:
def user_post_save(sender, instance, created, **kwargs):
if created and sender.objects.count() > MY_LIMIT:
instance.is_active = False
instance.save()
一个简单的pre_save
处理程序如下所示:
def user_pre_save(sender, instance, **kwargs):
if instance.id is None and sender.objects.count() > MY_LIMIT:
instance.is_active = False # Make sure the user isn't active
代替pre_save
处理程序中的最后一行,您还可以引发异常,以确保用户甚至不会保存到数据库中。
另一种选择是将其与自定义用户模型结合使用,而不是is_active
,您可以使用over_limit
或任何您想要的内容。您链接的回购是使用单独的DisabledUser
模型实现的。