V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
pykwokcc
V2EX  ›  Python

关于 Django auth_user 表字段扩展,大家能不能给些好的建议呢?

  •  
  •   pykwokcc · 2014-04-23 11:13:56 +08:00 · 6577 次点击
    这是一个创建于 3859 天前的主题,其中的信息可能已经有所发展或是发生改变。
    新手初学Django, 发现Django自带的auth_user表字段太少, 比如我想给user增加一个'avatar'字段来表示用户头像。网上搜了一下说新建一张profile表来存放额外字段,并且与auth_user建立一对一的关系。 想问问大家有没有什么好的建议。 我用的是Django1.6版本。
    7 条回复    1970-01-01 08:00:00 +08:00
    ericFork
        1
    ericFork  
       2014-04-23 11:45:38 +08:00   ❤️ 1
    官方推荐的方式就是这样,另外推荐 django-profiletools,可以省不少事
    zeq
        2
    zeq  
       2014-04-23 11:46:43 +08:00   ❤️ 1
    1.5以上版本已经不支持AUTH_PROFILE_MODULE方式来扩展用户模型了.
    可以尝试用AUTH_USER_MODEL来扩展.https://docs.djangoproject.com/en/dev/topics/auth/customizing/#auth-custom-user
    aggron
        3
    aggron  
       2014-04-23 12:28:54 +08:00   ❤️ 1
    如果你要保留自带User表中的字段,直接继承就好了
    from django.contrib.auth.models import AbstractUser

    class User(AbstractUser):
    avatar = models.URLField(blank=True)
    website = models.URLField(blank=True)

    然后setttings.py中增加
    AUTH_USER_MODEL = 'yourAppName.User'
    具体可以看AUTH_USER_MODEL的相关文档
    xiawinter
        4
    xiawinter  
       2014-04-23 14:25:34 +08:00
    avatar 未来可能要扩展, 不是加个字段。 我的经验是不要这么整了, avatar 独立出来一个 app, 在 app 里来写 avatar 逻辑。

    如果你在 auth_user 加了字段,哪里写 avatar 上传,剪切的代码呢?

    加个 app 什么都搞定了
    pykwokcc
        5
    pykwokcc  
    OP
       2014-04-23 15:46:23 +08:00   ❤️ 1
    @xiawinter 你的建议不错,但是 如果我在 auth_user 加了字段,为什么不能实现上传和裁剪了呢,应该是可以实现的吧
    pykwokcc
        6
    pykwokcc  
    OP
       2014-04-23 16:43:43 +08:00
    @aggron 发现你说的方法可以,刚刚试了下,就是我需要达到的样子,谢啦
    xiawinter
        7
    xiawinter  
       2014-04-23 18:09:17 +08:00
    @pykwokcc 你代码放什么地方?
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3579 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 10:32 · PVG 18:32 · LAX 02:32 · JFK 05:32
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.