私は基本的な質問回答アプリを実装しようとしています。ここに私の質問のモデルは次のとおりです。Django Rest Framework:辞書を返すネストされたシリアライザですが、リストが必要です
今class Questions(models.Model):
created = models.DateTimeField(auto_now_add=True)
question = models.CharField(max_length=1000, blank=True, default='')
asked_by = models.ForeignKey(User, related_name='question_user', null=True, default=None, on_delete=models.CASCADE)
upvote_by = models.ManyToManyField(User, default=None, related_name='advicesv1_upvote_question')
、私の代わりに、デフォルトで送信されたIDの「asked_by」と「upvote_by」の人々のユーザ名/ first_namesを送りたいです。これを実装するために私はこのようなネストされたシリアライザ使用:
{
"question_id": 182,
"created": "2017-03-07T10:53:16.241533Z",
"question": "hey what's up?",
"asked_by": {
"username": "testuser141"
},
"upvote_by": [
{
"username": "testuser"
},
{
"username": "testuser1"
}
]
},
しかし、私の所望の応答は次のとおりです:このによる
class QuesUserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('username',)
class NewQuestionSerializer(serializers.ModelSerializer):
question_id = serializers.IntegerField(source='id', required=False)
asked_by = QuesUserSerializer(read_only=True)
upvote_by = QuesUserSerializer(many=True, read_only=True)
class Meta:
model = Questions
fields = ('question_id', 'created', 'question', 'asked_by', 'upvote_by',)
を、私の現在の応答は、このようなものです
{
"question_id": 182,
"created": "2017-03-07T10:53:16.241533Z",
"question": "hey what's up?",
"asked_by": "testuser141",
"upvote_by": ["testuser", "testuser1",....],
},
何django restframeworkシリアライザを使ってこれを達成する最善の方法は?
どうもありがとう!! .....それは働きました! –