在模型对象列表上使用replace方法

时间:2018-05-02 16:16:56

标签: python django

我想打印出一个对象列表,目前看起来像这样:[<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_namevalues_list()只给出最后一个而不是全部三个。

1 个答案:

答案 0 :(得分:1)

模型的__repr__()方法适用于您所看到的其他<model:Name输出。

您可以直接致电__str__(),为您提供您之后的字符串代表。

[str(o) for o in list_of_objects]