Django 扩展用户以添加配置文件\u pic

Django 扩展用户以添加配置文件\u pic,django,user-profile,django-1.8,Django,User Profile,Django 1.8,在Django的旧版本中,您可以扩展用户模型并创建用户配置文件。现在看来,在Django 1.8中,这已经不一样了。我在Django 1.8中寻找这样做的好例子 这是我在网上找到的一个例子,但它没有扩展任何内容。我只想扩展用户,这样我就可以在我的tempaltes中使用user对象 class MyUser(AbstractBaseUser): """ Custom user class. """ GENDER_CHOICES = ( ('M',

在Django的旧版本中,您可以扩展用户模型并创建用户配置文件。现在看来,在Django 1.8中,这已经不一样了。我在Django 1.8中寻找这样做的好例子

这是我在网上找到的一个例子,但它没有扩展任何内容。我只想扩展用户,这样我就可以在我的tempaltes中使用user对象

class MyUser(AbstractBaseUser):
    """
    Custom user class.
    """

    GENDER_CHOICES = (
        ('M', 'Male'),
        ('F', 'Female'),
    )
    email = models.EmailField('email address', unique=True, db_index=True)
    is_staff = models.BooleanField('is staff', default=False)
    first_name = models.TextField('first name', default=None, null=True)
    last_name = models.TextField('last name', default=None, null=True)
    date_of_birth = models.DateField('date of birth', null=True)
    avatar = models.ImageField('profile picture', upload_to='static/media/images/avatars/', null=True, blank=True)
    has_picture = models.BooleanField('has profile picture', default=False)
    adult = models.BooleanField('is adult', default=False)
    gender = models.CharField('gender', max_length=1, choices=GENDER_CHOICES)

    objects = MyUserManager()

    REQUIRED_FIELDS = ['date_of_birth', 'gender']

    USERNAME_FIELD = 'email'

    # Insert a lot of methods here

    def set_avatar(self):
       self.has_picture = True
使用以下方法进行剥除:

给了我所有这些错误:

  Rendering model states...Traceback (most recent call last):
  File "manage.py", line 10, in <module>
    execute_from_command_line(sys.argv)
  File "/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 338, in execute_from_command_line
    utility.execute()
  File "/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site-packages/django/core/management/__init__.py", line 330, in execute
    self.fetch_command(subcommand).run_from_argv(self.argv)
  File "/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site-packages/django/core/management/base.py", line 390, in run_from_argv
    self.execute(*args, **cmd_options)
  File "/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site-packages/django/core/management/base.py", line 441, in execute
    output = self.handle(*args, **options)
  File "/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site-packages/django/core/management/commands/migrate.py", line 221, in handle
    executor.migrate(targets, plan, fake=fake, fake_initial=fake_initial)
  File "/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site-packages/django/db/migrations/executor.py", line 100, in migrate
    state.apps  # Render all real_apps -- performance critical
  File "/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site-packages/django/utils/functional.py", line 60, in __get__
    res = instance.__dict__[self.name] = self.func(instance)
  File "/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site-packages/django/db/migrations/state.py", line 166, in apps
    return StateApps(self.real_apps, self.models)
  File "/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site-packages/django/db/migrations/state.py", line 248, in __init__
    raise ValueError(msg.format(field=operations[0][1], model=lookup_model))
ValueError: Lookup failed for model referenced by field admin.LogEntry.user: app.UserProfile
渲染模型状态…回溯(最近一次调用):
文件“manage.py”,第10行,在
从命令行(sys.argv)执行命令
文件“/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site packages/django/core/management/__init___;.py”,第338行,从命令行执行
utility.execute()
文件“/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site packages/django/core/management/_init__.py”,执行中第330行
self.fetch_命令(子命令)。从_argv(self.argv)运行_
文件“/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site packages/django/core/management/base.py”,第390行,运行时来自
self.execute(*args,**cmd_选项)
文件“/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site packages/django/core/management/base.py”,第441行,在execute中
输出=self.handle(*args,**选项)
handle中的文件“/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site packages/django/core/management/commands/migrate.py”,第221行
executor.migrate(目标、计划、假=假、假首字母=假首字母)
文件“/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site packages/django/db/migrations/executor.py”,第100行,在migrate中
state.apps#呈现所有真实的应用程序--性能至关重要
文件“/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site packages/django/utils/functional.py”,第60行,在__
res=instance.\uuuu dict\uuuu[self.name]=self.func(实例)
文件“/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site packages/django/db/migrations/state.py”,第166行,在apps中
return StateApps(self.real\u应用程序、self.models)
文件“/Users/hermanstander/apps/afriapps/stem/env/lib/python2.7/site packages/django/db/migrations/state.py”,第248行,在__
raise VALUERROR(消息格式(字段=操作[0][1],模型=查找\模型))
ValueError:字段admin.LogEntry.user:app.UserProfile引用的模型的查找失败

是否按照此处所述进行迁移?文档建议使用
OneToOneField
为用户定义一个单独的
Profile
模型,而不是扩展用户对象,而不是按照此处所述进行迁移,文档建议为用户定义一个带有
OneToOneField
的单独
Profile
模型。您是否按照此处所述进行了迁移?文档建议为用户定义一个带有
OneToOneField
的单独
Profile
模型,而不是扩展用户对象。