我正在尝试设置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
答案 0 :(得分:2)
问题是你的unicode方法中你正在返回一个用户实例,尝试像
这样的东西def __unicode__(self):
return self.user.username