Python Django模型:从当前登录的用户返回用户名
我正在开发一个Django应用程序来承载媒体(特别是音频和图像)。我的模型中有单独的图像库和照片,并用Python Django模型:从当前登录的用户返回用户名,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我正在开发一个Django应用程序来承载媒体(特别是音频和图像)。我的模型中有单独的图像库和照片,并用外键链接它们(不确定是否正确,但仍在学习)。我需要的是Album类的\uuuuuuUnicode\uuuuu返回相册所有者的用户名 class Album(models.Model): artist = models.ForeignKey(User, unique=True, related_name='artpunk') def __unicode__(self):
外键链接它们(不确定是否正确,但仍在学习)。我需要的是Album类的\uuuuuuUnicode\uuuuu
返回相册所有者的用户名
class Album(models.Model):
artist = models.ForeignKey(User, unique=True, related_name='artpunk')
def __unicode__(self):
return self.artist.username
我知道username属性存在,并通过插入dir()
并检查控制台输出来确认它。问题是,当我进入管理面板的图像部分时,它只是简单地说明“无法识别的命令”。模型是否可以访问用户属性?还是我做错了什么
编辑:忘了提到,使用Python2.6和Django 1.0.2。如上所述,错误的确切文本是粗体的“unrecogned command”,我已经毫无疑问地运行了syncdb
。但是,今天早上我重新运行了syncdb
(没有输出),只是想再试一次,现在它似乎工作正常
可通过更改以下内容进行复制:
def __unicode__(self):
return self.artist.username
对这样的事情:
def __unicode__(self):
return self.artist.username+'\'s Gallery'
从模型访问用户(甚至作为外键)应该没有问题。我自己刚完成测试,似乎没有任何显著的差异
def __unicode__(self):
return self.user.username
另一方面,您还应该能够返回self.artist,因为我相信User.\uuuu unicode\uuu()
无论如何都会返回用户名
错误的具体细节是什么?您使用的是哪个版本的Django/Python?您是否对尚未反映在数据库中的模型进行了更改?有时我注意到,您只需要重新启动测试服务器就可以正常工作。特别是在管理方面
为了响应您的编辑,请尝试将用户名转换为字符串:
str(self.user.username)
您可以发布整个错误的确切文本吗?或者更好地使用unicode字符串,以便unicode方法实际返回unicodestring:-)返回self.artist.username+u'\'s Gallery'