2017-07-19 6 views
0

私はカスタムプロパティを持つモデルを持っています。私の管理者は、モデルからの戻り値を表示します。すべてのプロパティからの戻り値は、各レコードで次の単語から始まります。djangoのモデルからretrun値のキーワードQuerySetを取り除くにはどうすればいいですか

<QuerySet [ 

私は画像のようにすべてのレコードに現れてから<QuerySet [を取り除くためにしようとしていますか? get_followers、get_following、get_friendsの戻り値を表示すると、返される値はすべて<QuerySet [

どのようにできますか?あなたは、あなたがしたくない<QuerySet [を含んでクエリセットのrepr()を使用しているんu'%s' % self.get_related_to(RELATIONSHIP_FOLLOWING)

enter image description here

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

答えて

2

クエリセット内の項目の文字列のリストを取得し、一緒にこれらを結合する代替:

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()) 
+0

完全に機能します。今では、各アプリの前に友達の数を表示する方法を理解する必要があります。各アプリの管理パネルのように、友だちの数(appname(5))を表示します – Stryker

関連する問題