2016-01-03 69 views
0

我JSON陣列,下面是一個對象:「長」對象有沒有屬性「標題」

{ 
    "comment_id": 10159, 
    "new_id": 25208, 
    "user_id": 1, 
    "comment": "test", 
    "liked": 0, 
    "create_date": 1451268678, 
    "is_mobile_user": 0 
} 

我需要得到相關的消息對象NEW_ID並獲取相關的用戶對象user_id說明。我之前做過,但現在不行。我改變了我的串行這樣的:

class CommentSerializer(serializers.ModelSerializer): 
    news = NewsSerializer(source='new_id') 
    user = UserSerializer(source='user_id') 

    class Meta: 
     model = NewsComments 
     fields = ('comment_id','news','user','comment','liked','create_date','is_mobile_user') 

然後我得到這個異常:

AttributeError的在/ user_comments/1

了AttributeError的嘗試在 串行得到現場title值時NewsSerializer。串行器字段可能被錯誤地命名爲 ,並且不匹配long實例上的任何屬性或密鑰。

原始異常文本爲:'long'對象沒有屬性'標題'。

我試圖尋找。他們說改變兒童序列號爲「many = True」。但是,這使得我的錯誤長對象是不可迭代的。我如何解決我的問題?

P.S.也就是說NewsSerializer:

class NewsSerializer(serializers.ModelSerializer): 

    class Meta: 
     model = News 
     fields = ('new_id','title','short_content','content','image','create_date','type') 

我的新聞模態:

class NewsSerializer(serializers.ModelSerializer): 

class Meta: 
    model = News 
    fields = ('new_id','title','short_content','content','image','create_date','type') 

比我的觀點:

@api_view(['GET']) 
def user_comments(request,pk): 
    comments = NewsComments.objects.filter(user_id=pk) 
    serializer = CommentSerializer(comments, many=True) 
    return Response(serializer.data) 
+0

你能展現'NewsSerializer'? – doniyor

+0

我已經添加了。 –

+0

你可以發佈你的新聞模型嗎?你怎麼稱呼它。 – levi

回答

0

你想用

news = NewsSerializer(source='new') 

假設它是一個FK上模型。

new_id是FK值(即相關對象ID,而不是對象本身)。

0

這是因爲您在long類型文本打電話title,你可以改變你CommnetSerializer這樣:

news = NewsSerializer(read_only=True) 

如果您NewsNewsComments的集合,需要在NewsSerializer

添加 many=True

或者在NewsComments創建模型的方法,並獲取想要news