【发布时间】:2010-10-04 07:50:42
【问题描述】:
我已在 django-users 上发布此内容,但尚未收到回复!
所以我有自己的用户个人资料对象(用户的子类)。其中一个字段是 imagefield,它(显然)用于用户上传他们的徽标/缩略图。
问题是我怎样才能将它包含在他们的 cmets 中?
有什么想法吗?提前致谢!
【问题讨论】:
我已在 django-users 上发布此内容,但尚未收到回复!
所以我有自己的用户个人资料对象(用户的子类)。其中一个字段是 imagefield,它(显然)用于用户上传他们的徽标/缩略图。
问题是我怎样才能将它包含在他们的 cmets 中?
有什么想法吗?提前致谢!
【问题讨论】:
在 Django 中不推荐子类化用户。相反,创建一个单独的配置文件模型。
假设你有你的应用,foo。
在foo的models.py中,添加:
class FooUserProfile(models.Model):
user = models.ForeignKey(User, unique=True)
user_image = models.ImageField()
然后,在您的 settings.py 中,添加:
AUTH_PROFILE_MODULE = 'foo.FooUserProfile'
现在,只要您有一个用户对象,您就可以使用 get_profile() 函数获取其配置文件对象。在您的情况下,您可以在模板中添加:
<img src="{{ comment.user.get_profile.user_image }}"/>
警告:您需要创建一个 FooUserProfile 并将其与您的用户相关联,无论何时创建新用户。
您可以在 Django 文档中阅读更多内容,Storing additional information about users 或文章Django tips: extending the User model
【讨论】: