Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/318.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
Python django注册应用程序和django 1.5自定义用户模型_Python_Django_Django Registration - Fatal编程技术网

Python django注册应用程序和django 1.5自定义用户模型

Python django注册应用程序和django 1.5自定义用户模型,python,django,django-registration,Python,Django,Django Registration,我使用django注册应用程序和django 1.5。如何创建(django中新增的)自定义用户模型并在注册期间保存此数据(请注意,我使用的是django注册): ?django注册的主分叉目前与django 1.5不兼容 检查 您有三种选择: 修补django注册的代码。您可以从pull请求中获得所需的更改 使用已经打过补丁的非官方叉子。比如说 等待主分叉上的更新 这很好地解释了该过程,并适用于django registration 1.0 除了上面的代码之外,这里还有一些额外的指针 要更新

我使用django注册应用程序和django 1.5。如何创建(django中新增的)自定义用户模型并在注册期间保存此数据(请注意,我使用的是django注册):


django注册的主分叉目前与django 1.5不兼容

检查

您有三种选择:

  • 修补django注册的代码。您可以从pull请求中获得所需的更改
  • 使用已经打过补丁的非官方叉子。比如说
  • 等待主分叉上的更新
这很好地解释了该过程,并适用于django registration 1.0

除了上面的代码之外,这里还有一些额外的指针

要更新名字,请在models.py中更改此选项

def user_registered_callback(sender, user, request, **kwargs):
profile = ExUserProfile(user = user)
profile.is_human = bool(request.POST["is_human"])
user.first_name = request.POST["firstname"]
user.save()
profile.save()

user_registered.connect(user_registered_callback)
在forms.py文件中

class ExRegistrationForm(RegistrationForm):
    is_human = forms.BooleanField(label = "Are you human?:")
    firstname = forms.CharField(max_length=30)
    lastname = forms.CharField(max_length=30)
最后,要查看表单上的更改,请创建适当的模板。通过在应用程序中创建名为admin.py的文件并编写以下代码,可以在管理员界面中查看配置文件

from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from prof.models import ExUserProfile

admin.site.unregister(User)

class UserProfileInline(admin.StackedInline):
    model = ExUserProfile

class UserProfileAdmin(UserAdmin):
    inlines = [ UserProfileInline, ]

admin.site.register(User, UserProfileAdmin)

Django registration 1.0最近发布。它完全重写为使用基于类的视图,并支持Django 1.0自定义用户模型。查看。

您看到这个了吗@rafek我尝试使用新的自定义用户模型(Django 1.5中的新版本),我刚从bitbucket下载了当前的
Django注册
应用程序的“trunk”版本,它可以与Django 1.5一起使用(当我使用
pip
安装应用程序时,它不起作用)。我下载的版本号是
version=(0,9,0,'beta',1)
。可能是
django-registration2
?我刚刚安装了它,而不是
django注册
,因为
yolk-V django注册
只提供
django注册0.8
,这与django==1.5.1不兼容。这实际上不会同时创建用户和ExUserProfile实例吗?是的,也就是说,自定义用户模型是通过将ExUserProfile与用户对象关联并保存必要的字段来创建的
from django.contrib import admin
from django.contrib.auth.models import User
from django.contrib.auth.admin import UserAdmin
from prof.models import ExUserProfile

admin.site.unregister(User)

class UserProfileInline(admin.StackedInline):
    model = ExUserProfile

class UserProfileAdmin(UserAdmin):
    inlines = [ UserProfileInline, ]

admin.site.register(User, UserProfileAdmin)