我有一个包含自定义属性的模型。在我的管理员中,我显示模型的返回值。所有属性的返回值都以每条记录中的以下单词开头。
<QuerySet [
我试图摆脱<QuerySet [
出现在图片中显示的每条记录中?
当我从get_followers,get_following,get_friends显示返回值时,所有返回值都包含<QuerySet [
知道我该怎么做吗?
class Application(TimeStampModel):
name = models.CharField(verbose_name='CI Name', max_length=100, unique=True)
relationships = models.ManyToManyField('self', through='Relationship',
symmetrical=False,
related_name='related_to')
def get_following(self):
return self.get_relationships(RELATIONSHIP_FOLLOWING)
def get_followers(self):
return u'%s' % self.get_related_to(RELATIONSHIP_FOLLOWING)
def get_friends(self):
return self.relationships.filter(
to_apps__status=RELATIONSHIP_FOLLOWING,
to_apps__from_application=self,
from_apps__status=RELATIONSHIP_FOLLOWING,
from_apps__to_application=self)
def __str__(self):
return "{}".format(self.name)
RELATIONSHIP_FOLLOWING = 1
RELATIONSHIP_BLOCKED = 2
RELATIONSHIP_STATUSES = (
(RELATIONSHIP_FOLLOWING, 'Following'),
# Following: denotes the relationship from the user, i.e. following
(RELATIONSHIP_BLOCKED, 'Blocked'),
)
答案 0 :(得分:2)
当您执行u'%s' % self.get_related_to(RELATIONSHIP_FOLLOWING)
时,您使用的是查询集的repr()
,其中包含您不想要的<QuerySet [
。
获取查询集中项目的字符串列表的替代方法,并将它们连接在一起:
def get_followers(self):
return ", ".join(str(x) for x in self.get_related_to(RELATIONSHIP_FOLLOWING)))
如果您实际在代码中的其他位置使用查询集,则创建单独的方法(例如get_friends_display
),并在模型管理员list_display
中使用新方法。
def get_friends_display(self):
return ", ".join(str(x) for x in self.get_friends())