0

我将django-registration应用程序插入到我的项目中,效果很好。新用户可以注册和登录。但是,在我的应用程序中,我想向用户提供完整的个人资料并使用我通过的信息django-registration

如何连接来自 django-registration 的信息和我自己的应用程序的用户模型?

from django.contrib.auth.models import models as  auth_models
from django.contrib.auth.models import User

class User(User):

    username = auth_models.CharField(max_length=100)
    description = auth_models.TextField()
    picture = auth_models.ImageField(upload_to=something, blank=True, null=True) 
    location = auth_models.CharField(max_length=200) # please replace with GIS API

    email = auth_models.EmailField()
    password = auth_models.CharField(max_length=128)

    # during registration: did the user click
    # the sent activiation link?
    is_active = auth_models.BooleanField(default=False)
    appear_in_public_ranking = auth_models.BooleanField(default=True)

    def __unicode__(self):
        return self.username
4

1 回答 1

2

在 Django 1.5 中,引入了扩展现有的 User 模型。您可以直接使用它来添加新字段。

但如果您使用的是以前版本的 Django,请执行以下操作:

创建一个名为的新模型Profile并将所有必填字段放在那里。

from django.contrib.auth.models import User

class Profile(models.Model):
    user = models.OneToOneField(User)
    ...

然后在您的设置文件中,添加:

AUTH_PROFILE_MODULE = '<application_name>.Profile'

其中 application_name 是您在其中创建Profile模型的应用程序的名称。

当您有登录用户时,您可以使用它request.user.get_profile()来获取相应的 Profile 对象。

于 2013-11-01T12:59:24.983 回答