/ Como posso me livrar da palavra-chave QuerySet no valor de retorno do modelo em django - django, django-models, django-admin

Como posso me livrar da palavra-chave QuerySet no valor de retorno do modelo em django - django, django-models, django-admin

Eu tenho um modelo com propriedades personalizadas. No meu admin eu exibo o valor de retorno do modelo. Os valores de retorno de todas as propriedades começam com as seguintes palavras em cada registro.

<QuerySet [

Eu estou tentando me livrar do <QuerySet [ de aparecer em todos os registros, como mostrado na imagem? Quando exibo o valor de retorno de get_followers, get_following, get_friends, todos os valores de retorno contêm <QuerySet [

Alguma ideia de como posso fazer isso?

insira a descrição da imagem aqui

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"),
)

Respostas:

2 para resposta № 1

Quando você faz u"%s" % self.get_related_to(RELATIONSHIP_FOLLOWING) você está usando o repr() do queryset, que inclui o <QuerySet [ que você não quer.

Uma alternativa para obter uma lista de sequências para os itens no conjunto de consultas e uni-las:

def get_followers(self):
return ", ".join(str(x) for x in self.get_related_to(RELATIONSHIP_FOLLOWING)))

Se você realmente usar o queryset em outro lugar em seu código, crie um método separado (por exemplo, get_friends_display), e use o novo método no seu modelo admin "s list_display.

def get_friends_display(self):
return ", ".join(str(x) for x in self.get_friends())