14

在 Django-Registration 中,它说您可以在保存用户时保存自定义配置文件。
但我不知道文档要求我做什么。他们是这样说的:

要启用自定义用户配置文件以及User(例如,AUTH_PROFILE_MODULE设置中指定的模型)的创建,请定义一个函数,该函数知道如何使用适当的默认值创建和保存该模型的实例,并将其作为关键字参数传递profile_callback。这个函数应该接受一个关键字参数:

user

User配置文件关联到。

有人可以给我一个需要创建的函数的示例以及如何将其作为参数传递吗?

4

3 回答 3

8

您可以在 urls.py 文件中传递回调函数。

from mysite.profile.models import UserProfile


url( r'^accounts/register/$',      'registration.views.register',
        { 'profile_callback': UserProfile.objects.create }, name = 'registration_register' ),

根据需要用您自己的函数替换 UserProfile.objects.create。

于 2009-07-02T05:53:23.817 回答
6

这篇博文对此进行了介绍,并在我对同一问题的另一个问题的回答中对此进行了扩展

django-registration 在各种事件发生时发送信号 - 注册和激活。在其中任何一个点上,您都可以为该信号创建一个挂钩,该信号将被赋予用户和请求对象 - 从那里您可以为该用户创建一个配置文件。

来自 django-registration 的信号

#registration.signals.py 
user_registered = Signal(providing_args=["user", "request"]) 

创建配置文件的代码

#signals.py (in your project)
user_registered.connect(create_profile)

def create_profile(sender, instance, request, **kwargs):
    from myapp.models import Profile
    #If you want to set any values (perhaps passed via request) 
    #you can do that here

    Profile(user = instance).save()
于 2011-04-07T13:12:46.733 回答
1

对于遇到这个问题的任何人,我认为这篇博文是一个很好的教程:http: //johnparsons.net/index.php/2013/06/28/creating-profiles-with-django-registration/

于 2014-04-12T14:45:25.917 回答