我正在使用下面的查询集,我对数据库很陌生,我想知道这样做是否太昂贵,或者如果是,建议另一种方法?
while active_user is None:
active_user = Users.objects.filter(is_active=True).first()
is_active
字段在数据库(db_index=True
(中索引,while循环不会超过2-3分钟MySql
。
很难确定,但 Django 的信号可能会完成你想要完成的事情。设置完成后,您可以在创建用户后通过侦听其post_save
信号来触发信号。该信号具有一个created
参数,该参数仅在创建新用户时True
。以下示例改编自此处。
from django.contrib.auth import get_user_model
from django.db.models.signals import post_save
from django.dispatch import receiver
@receiver(pre_save, sender=get_user_model())
def my_handler(sender, **kwargs):
if kwargs.get('created'):
# Do what you're looking to do here
pass