Django简介

时间:2011-11-18 03:13:07

标签: django

我正在尝试设置Django以获取作者的个人资料。它需要是一个非常简单的解决方案,我有我认为应该工作的东西:

模型

from django.contrib.auth.models import User
class MyProfile(models.Model):
    "Extends the user object for custom attr"
    user = models.OneToOneField(User)
    website = models.URLField(blank=True,null=True)
    websiteName = models.CharField(max_length=255,blank=True,null=True)
    twitterHandle=models.CharField(max_length=255,blank=True,null=True)
    bio = models.TextField()

    User.profile = property(lambda u: MyProfile.objects.get_or_create(user=u)[0])

    def __unicode__(self):
        return self.user

设置

AUTH_PROFILE_MODULE = "btc_app.UserProfile"

但是每当我创建一个配置文件时,我都会遇到类型错误:

  

异常值:强制转换为Unicode:需要字符串或缓冲区,用户   结果

我的帖子数据看起来像这样

POST

website u''
bio u'tttt'
_save   u'Save'
twitterHandle   u''
user    u'2'
websiteName u''
csrfmiddlewaretoken u'5af9526bc84673fc3338d63272804b92'

其中包含所有用户的下拉菜单,它可以让我选择一个但由于某种原因导致保存失败...有什么想法吗?

谢谢, CG

1 个答案:

答案 0 :(得分:2)

问题是你的unicode方法中你正在返回一个用户实例,尝试像

这样的东西
def __unicode__(self):
    return self.user.username