Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.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
是否使用.update()向django注册添加其他字段?_Django_Django Models_Django Registration - Fatal编程技术网

是否使用.update()向django注册添加其他字段?

是否使用.update()向django注册添加其他字段?,django,django-models,django-registration,Django,Django Models,Django Registration,我在django注册中添加了其他字段first_name和last_name,并按以下方式运行-- 使用.update()是添加这些附加字段的好方法吗?如果不是,那么使用哪种方法更好(出于某种原因,注册过程似乎执行得很慢)?谢谢。我想如果您使用.update()进行更改是没有问题的,尽管我个人会使用信号进行必要的更改。使用信号的好处是,您可以清楚地将注册逻辑与应用程序相关逻辑分开。例如:如果你有不同型号的免费用户和高级用户等等 注册过程并不缓慢。“慢”很可能是因为SMTP服务器发送邮件需要时间。

我在django注册中添加了其他字段first_name和last_name,并按以下方式运行--


使用
.update()
是添加这些附加字段的好方法吗?如果不是,那么使用哪种方法更好(出于某种原因,注册过程似乎执行得很慢)?谢谢。

我想如果您使用
.update()
进行更改是没有问题的,尽管我个人会使用信号进行必要的更改。使用信号的好处是,您可以清楚地将注册逻辑与应用程序相关逻辑分开。例如:如果你有不同型号的免费用户高级用户等等

注册过程并不缓慢。“慢”很可能是因为SMTP服务器发送邮件需要时间。你可以试试,它可以将需要发送的电子邮件排成队列。由于这是一个异步过程,您需要使用cron每隔一分钟左右发送一次电子邮件。但这将使你的注册过程“更快”,因为电子邮件不会立即发送

# `registration/backends/default/__init__.py`

from django.contrib.auth.models import User

class DefaultBackend(object):

    def register(self, request, **kwargs):
       username, email, first_name, last_name, password = 
       kwargs['email'], kwargs['email'], kwargs['first_name'], kwargs['last_name'], kwargs['password1']
       if Site._meta.installed:
          site = Site.objects.get_current()
       else:
          site = RequestSite(request)

       new_user = RegistrationProfile.objects.create_inactive_user(username, email,
                                                                   password, site)

       # to create the additional first_name, last_name fields
       additional = User.objects.filter(username=username).update(first_name=first_name, last_name=last_name)

       signals.user_registered.send(sender=self.__class__,
                                 user=new_user,
                                 request=request)
       return new_user