Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
django-限制用户数量_Django - Fatal编程技术网

django-限制用户数量

django-限制用户数量,django,Django,(对不起我的英语) 只有一个问题,有没有办法限制可以在Django应用程序中创建的用户数量 我搜索了很多地方,只找到了这个,但我在回购协议中看到,上次更新是3年前 我不知道django的核心是否存在任何方式,或者我是否必须重写某些东西 非常感谢 虽然我没有时间测试新的Django,但它使用Django的信号朝着正确的方向发展: 例如,您可以编写一个pre_save或post_save处理程序,并将其连接到保存用户模型之前/之后发出的信号 一个简单的post\u save处理程序可能如下所示: d

(对不起我的英语)

只有一个问题,有没有办法限制可以在Django应用程序中创建的用户数量

我搜索了很多地方,只找到了这个,但我在回购协议中看到,上次更新是3年前

我不知道django的核心是否存在任何方式,或者我是否必须重写某些东西


非常感谢

虽然我没有时间测试新的Django,但它使用Django的信号朝着正确的方向发展:

例如,您可以编写一个
pre_save
post_save
处理程序,并将其连接到保存用户模型之前/之后发出的信号

一个简单的
post\u save
处理程序可能如下所示:

def user_post_save(sender, instance, created, **kwargs):
    if created and sender.objects.count() > MY_LIMIT:
        instance.is_active = False
        instance.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
处理程序如下所示:

def user_post_save(sender, instance, created, **kwargs):
    if created and sender.objects.count() > MY_LIMIT:
        instance.is_active = False
        instance.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
处理程序中的最后一行之外,您还可以引发异常以确保用户甚至没有保存到数据库中


另一种选择是将其与自定义用户模型相结合,这样您就可以使用
over\u limit
或您想要的任何东西,而不是
is\u active
。您链接的回购协议是通过一个单独的
DisabledUser
模型实现的。

现在已经很晚了,但明天我将尝试django limit users,如果不起作用,让它成为我自己的。谢谢