django的注册的应用程序和Django的1.5自定义用户模型(django-registrati

2019-08-17 10:16发布

我使用Django登记的应用程序和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)

Answer 1:

Django的登记的主要叉不使用Django 1.5兼容现在。

检查这个pull请求 。

你有三个选择:

  • 补丁Django的注册代码。 你可以从下拉请求所需的变化。
  • 使用已修补一个非官方的叉。 这其中的例子。
  • 等待主叉的更新...


Answer 2:

此链接解释的过程以及和Django的登记工作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)


Answer 3:

Django的注册1.0已经被最近发布。 它被完全重写了使用基于类的意见,并与Django的1.0自定义用户模型的支持。 退房的文档 。



文章来源: django-registration app and Django 1.5 custom user model