我想打印出一个对象列表,目前看起来像这样:[<model.Name: value_of_field1>, <model.Name: value_of_field2>, etc]
。我想只得到价值观,所以我希望得到如下结果:
value_of_field1,value_of_field2等
我尝试这样做的方法是使用:list = [item.replace('model.Name: ', '') for item in list]
,但是,这会导致以下错误:&#39; model.Name&#39;对象没有属性&#39;替换&#39; 。
如何获得一份清洁清单,以后我可以使用?
修改
我忘了提到我尝试使用values_list()
但是,它没有给出想要的结果。我的模型看起来像这样:
class Article(models.Model):
title = models.ForeignKey(Title)
class Title(models.Model):
author = models.ForeignKey(User)
name = models.ForeignKey(NameArchive)
def __str__(self):
return '%s, %s' % (self.author, self.name)
其中,作者由2个名字组成。因此,列表中的值(value_of_field1等)看起来像这样 - author_first_name author_last_name, article_name
和values_list()
只给出最后一个而不是全部三个。
答案 0 :(得分:1)
模型的__repr__()
方法适用于您所看到的其他<model:Name
输出。
您可以直接致电__str__()
,为您提供您之后的字符串代表。
[str(o) for o in list_of_objects]