我正在尝试通过管理员保存模型,但是我一直收到此错误
unsupported operand type(s) for +: 'DeferredAttribute' and 'str'".
我想返回模型的字符串表示形式。
这是我尝试过的:
def __str__(self):
return str(self.album_name + "" + self.artist)
我的模特:
class Album(models.Model):
album_name = models.CharField(max_length=250,)
album_logo = models.FilePathField(path='music/static/music/song_logo',
null=True, blank=True, recursive=True)
artist = models.CharField(max_length=150)
primaryid = models.AutoField(primary_key=True, null=False)
@classmethod
def __str__(self):
return self.album_name + " " + self.artist
例如,我想获得类似“ hilltop”之类的东西
答案 0 :(得分:2)
+
不应该是__str__
,删除该修饰符将解决您的问题。
您正在将类(classmethod
)作为Album
而不是实例传递给__str__
方法。有关详细信息,请参见this question。
答案 1 :(得分:0)
您需要从模型中删除@classmethod
装饰器,因为它不应该。
此外,如果您尝试通过在self.artist
的{{1}}方法中使用以下语法来将其连接,则CharField
为models.py
。
__str__()