2013-03-08 98 views
11

我使用Django登记的应用程序和Django的1.5。如何创建自定义用户模型(在Django新),并在注册过程中也保存这些数据(请注意,我使用Django注册):django的注册的应用程序和Django的1.5自定义用户模型

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) 

+1

你有看到这个吗? http://stackoverflow.com/questions/1072270/saving-profile-with-registration-in-django-registration – rafek 2013-03-08 14:43:18

+0

@rafek我尝试用新的自定义用户模型(在Django 1.5新) – user2054574 2013-03-08 14:45:59

回答

9

django的登记的主叉不与django的1.5兼容现在。

检查this pull request

你有三个选择:

  • 补丁Django的注册代码。您可以从拉取请求中获取所需的更改。
  • 使用已修补一个非官方的叉。例如This one
  • 等待主叉的更新...
+1

我刚刚下载了当前的“主干”从bitbucket版本的'django-registration'应用程序,它与Django 1.5一起工作(当我使用'pip'来安装应用程序时它不工作)。我下载的版本号是'VERSION =(0,9,0,'beta',1)'。 – yellowcap 2013-03-27 13:11:16

+1

也许'django-registration2'?因为'蛋黄-V Django的registration'只给出了'Django的登记0.8'这是不符合Django的兼容== 1.5.1 – boldnik 2013-06-05 19:32:46

4

link解释的过程以及和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) 
+0

这会不会实际创建既是用户,我刚刚安装了它,而不是'Django的registration'和ExUserProfile实例? – 2013-08-05 14:49:03

+1

是的,这是客观的自定义用户模型是通过将ExUserProfile关联到用户对象并保存必要的字段 – timberlake 2013-08-07 06:38:37

0

Django的注册1.0已经最近发布可以看出。它完全改写为使用基于类的视图和Django 1.0自定义用户模型支持。检查出docs

相关问题