[英]django rest Serializers how to representation
在django模型中
class TableFriend(models.Model):
user = models.ForeignKey(User, related_name="main_user", default="newbie")
friend = models.ForeignKey(User, related_name="friend_for_user", default="newbie")
date = models.DateTimeField(auto_now=True)
def __str__(self):
return '%s %s %s' % (self.user, self.friend, self.date)
django休息代碼
class FriendSerializer(serializers.ModelSerializer):
class Meta:
model = TableFriend
fields = ('user', 'friend', 'date')
輸出:
[{"user":1,"friend":3,"date":"2016-11-10T15:12:33.189570Z"},{"user":1,"friend":2,"date":"2016-11-10T15:11:56.936230Z"}]
但我需要朋友的名字。 我想看看"friend":username
。 我想從django模型中看到__str__
。 我該怎么做?
首先,在__str__
中的TableFriend
,您需要實際傳遞一個字符串,如:
def __str__(self):
return '%s %s %s' % (self.user.name, self.friend.name, self.date)
我假設您在User
模型中有一個name
字段。
要顯示朋友用戶名,您可以:
class FriendSerializer(serializers.ModelSerializer):
friend_username = serializers.ReadOnlyField(source='friend.username')
class Meta:
model = TableFriend
fields = ('user', 'friend', 'date')
參考: 指定只讀字段
輸出現在將是這樣的:
[{"user":1,"friend":3,"friend_username":"<the_username>","date":"2016-11-10T15:12:33.189570Z"}...]
__str__
是對象的字符串表示形式。 要查看它,您可以執行以下操作: TableFriend.objects.first()
。 這將產生類似<TableFriend: my_name friend_name 2016-11-21 23:54:57.060029>
參考: 對象。 str (個體經營)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.