我使用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)
?
Django的登记的主要叉不使用Django 1.5兼容现在。
检查这个pull请求 。
你有三个选择:
- 补丁Django的注册代码。 你可以从下拉请求所需的变化。
- 使用已修补一个非官方的叉。 这其中的例子。
- 等待主叉的更新...
此链接解释的过程以及和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)
Django的注册1.0已经被最近发布。 它被完全重写了使用基于类的意见,并与Django的1.0自定义用户模型的支持。 退房的文档 。