【发布时间】:2014-05-18 11:35:55
【问题描述】:
在 Django admin 中,我创建了一个名称对象,名称为:“United Kingdom”。然后,我使用刚刚创建的 Name 对象和标志图像的路径创建一个 Nation 对象。
保存条目时,我得到:
/admin/display/nation/add/ 处的类型错误
Can't convert 'Name' object to str implicitly
Request Method: POST
Request URL: http://127.0.0.1:8000/admin/display/nation/add/
Django Version: 1.6.2
Exception Type: TypeError
Exception Value: Can't convert 'Name' object to str implicitly
Exception Location: \models.py in __unicode__, line 24
models.py 的相关部分
class Name(models.Model):
def __unicode__(self):
return 'Name: ' + self.name
id = models.AutoField(primary_key=True)
name = models.CharField(max_length=32)
class Meta:
db_table = 'name'
class Nation(models.Model):
def __unicode__(self):
return 'Nation: ' + self.name
id = models.AutoField(primary_key=True)
name = models.ForeignKey(Name)
flag_path = models.CharField(max_length=64)
class Meta:
db_table = 'nation'
从错误消息中,我了解到return 'Name: ' + self.name 需要返回一个字符串以附加到“名称:”,但我将如何修改我的 models.py 以允许这样做?
【问题讨论】:
-
return 'Name: ' + self.name.name呢? -
return 'Name: ' + str(self.name)?? -
pNre,这似乎符合我最想做的事情,并且有效。您可以将其添加为答案以便我接受吗?
标签: python django postgresql typeerror psycopg2