Django用户模型在哪里进行猴子补丁?
我想对Django的用户模型进行修改。
我的代码:
from django.db import models
from django.contrib.auth.models import User
User.add_to_class('secret_question', models.CharField(max_length="100"))
User.add_to_class('answer', models.CharField(max_length="100"))
User.add_to_class('DOB', models.DateField())
我应该把这段代码放在哪里,才能让 python manage.py syncdb
创建出正确的表呢?
我试过把它放在主目录的 models.py
文件里,也试过放在某个应用的 models.py
文件里(这两种方法都没有生成正确的表),还试过把它放在项目的 settings.py
文件里(结果出错,无法运行)。
2 个回答
3
如果你真的想要修改用户模型,其实已经有一个现成的应用可以用。
这是一个模块化的 Django 用户系统。
这个 Django 应用会对 Django 进行一些修改,让你可以使用一个自定义的用户模型,并且这个模型可以和 Django 自带的用户认证系统(django.contrib.auth)配合使用。
7
请查看关于用户额外信息存储的部分,这里有关于认证的文档。它提供了一种更简洁的方法来给用户对象添加额外的信息。
如果你想存储与用户相关的额外信息,Django提供了一种方法,可以为此指定一个特定于网站的相关模型,这个模型被称为“用户资料”。