Django -registration app和Django 1.5自定义用户模型



我使用Django -registration app和Django 1.5。如何创建(新的django)自定义用户模型,并在注册期间保存这些数据(请注意,我正在使用django注册):

class CustomProfile(models.Model):
    user = models.ForeignKey(User)
    name = models.CharField(max_length=255)
    bank = models.CharField(max_length=255)
    address = models.CharField(max_length=255)

?

目前django-registration的主分支与django 1.5不兼容

检查这个拉取请求。

你有三个选择:

  • 补丁django-registration的代码您可以从拉取请求中获得所需的更改。
  • 使用已经打过补丁的非官方分支。例如:
  • 等待主分支的更新…

这个链接很好地解释了这个过程,并适用于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自定义用户模型支持。查看文档

相关内容

  • 没有找到相关文章

最新更新